假设我在Active Directory中有一个用户的用户ID。我想获取该用户当前所属的所有AD组的列表。如何从Windows命令行执行此操作?
我尝试了以下方法:
dsget user "DC=jxd123" -memberof
错误:
dsquery failed:'-memberof' is an unknown parameter.
type dsquery /? for help.
假设我在Active Directory中有一个用户的用户ID。我想获取该用户当前所属的所有AD组的列表。如何从Windows命令行执行此操作?
我尝试了以下方法:
dsget user "DC=jxd123" -memberof
错误:
dsquery failed:'-memberof' is an unknown parameter.
type dsquery /? for help.
Answers:
您可以在PowerShell中轻松完成此操作。我敢肯定您也可以使用ds工具来做到这一点,但是它们既旧又硬,并且应将PowerShell用于当今的所有可能情况。
Import-Module ActiveDirectory
(Get-ADUser userName –Properties MemberOf | Select-Object MemberOf).MemberOf
短版
(Get-ADUser userName –Properties MemberOf).MemberOf
Get-ADPrincipalGroupMembership
是在PowerShell中执行此操作的另一种方法。
或使用net user命令...
net user /domain username
单行,无需模块,使用当前登录的用户$($ env:username),从其他Windows计算机运行:
(New-Object System.DirectoryServices.DirectorySearcher("(&(objectCategory=User)(samAccountName=$($env:username)))")).FindOne().GetDirectoryEntry().memberOf
此vbs / powershell文章的Qudos:http ://technet.microsoft.com/zh-cn/library/ff730963.aspx
找到了一个很好的资源:
这是在Windows命令提示符下执行的方法:
dsquery user -samid jxd123 | dsget user -memberof | dsget group -samid
whoami /groups /fo list
,因为它是最容易用眼睛阅读的格式。
adfind是用于此类事情的另一种出色工具。它是MVP Joe Richards提供的免费工具
http://www.joeware.net/freetools/tools/adfind/
您可以使用其中之一
adfind -sc u:username memberof
这是一种搜索给定域下的所有域的解决方案(假设每个域都有适当的权限):
# provide the logon name here:
$user="alice"
$allGroups=@()
foreach ( $d in (Get-ADForest example.net).domains ) { Write-Output "Looking up $user in domain $d"; $allGroups += Get-ADPrincipalGroupMembership $user -ResourceContextServer $d }
$allGroups | ft name,GroupScope,distinguishedName -AutoSize