获得用户的会员资格

时间:2015-05-27 13:34:55

标签: powershell

我有一个非常简单的问题,但由于某种原因,我似乎无法理解它。 我需要一行代码,可以作为用户从客户端运行,并列出AD中的所有“memeber”组(仅适用于当前用户)。类似于

Get-ADGroupMember -identity "domain admins" -Recursive | foreach{ get-aduser $_} | select SamAccountName,objectclass,name

我希望列出结果。

我要么想要在客户端计算机上导入AD模块,要么以其他方式联系DC并让用户获得当前“memeber of”组。

/尼古拉斯

4 个答案:

答案 0 :(得分:3)

我找到了满足我需求的最佳方式,但CB.'s answer也有效!

[ADSISEARCHER]"samaccountname=$($env:USERNAME)").Findone().Properties.memberof -replace '^CN=([^,]+).+$','$1'

然后我可以继续在我的代码中使用此输出

答案 1 :(得分:0)

你可以使用dos命令行:

net user /domain %username%

答案 2 :(得分:0)

最简单的方法是使用

Get-ADPrincipalGroupMembership -identity "Username"

现在这也意味着您必须加载活动目录模块,您可以在Technet上找到有关其使用的更多信息Get-ADPrincipalGroupMember

答案 3 :(得分:0)

如果您只是想生成一个列表,请调用命令提示符,因为我发现这很有效,尽管它会截断组名:

net user %username% /DOMAIN

如果您希望以编程方式获取它们并轻松地 使用该数据,那么您将需要依赖 Active Directory cmdlet

要确定您是否在Powershell中提供这些功能,您需要运行以下命令:

Get-Module –ListAvailable

如果您在列表中没有看到 ActiveDirectory ,则需要先下载并安装Windows Management Framework并自行导入模块:

Import-Module ActiveDirectory

一旦完成,我相信这个命令应该可以解决问题:

(Get-ADUser userName –Properties MemberOf | Select-Object MemberOf).MemberOf

希望这能让你开始。我很确定使用Powershell实现这一目标的方法不止一种。看看Microsoft TechNet documentation,看看你是否能找到更适合自己需求的东西。

就个人而言,我只需要临时查询AD组成员资格以进行诊断,并且始终依赖于Get-ADUser或命令行调用,具体取决于结果数据的目标受众。