我有一个非常简单的问题,但由于某种原因,我似乎无法理解它。 我需要一行代码,可以作为用户从客户端运行,并列出AD中的所有“memeber”组(仅适用于当前用户)。类似于
Get-ADGroupMember -identity "domain admins" -Recursive | foreach{ get-aduser $_} | select SamAccountName,objectclass,name
我希望列出结果。
我要么想要在客户端计算机上导入AD模块,要么以其他方式联系DC并让用户获得当前“memeber of”组。
/尼古拉斯
答案 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或命令行调用,具体取决于结果数据的目标受众。