假设我有Active Directory中的用户的用户标识。 我想获得该用户当前所属的所有AD组的列表。 我怎么能从Windows命令行做到这一点?
我已经尝试了以下内容:
dsget user "DC=jxd123" -memberof
错误:
dsquery failed:'-memberof' is an unknown parameter. type dsquery /? for help.
你可以很容易地在PowerShell中做到这一点。 我相信你也可以用ds工具来做,但是它们已经很老了,PowerShell应该可以用于现在的一切。
Import-Module ActiveDirectory (Get-ADUser userName –Properties MemberOf | Select-Object MemberOf).MemberOf
或者用net user命令…
net user /domain username
单行,没有必要的模块,使用当前logging的用户$($ env:用户名),从其他Windows机器运行:
(New-Object System.DirectoryServices.DirectorySearcher("(&(objectCategory=User)(samAccountName=$($env:username)))")).FindOne().GetDirectoryEntry().memberOf
对此vbs / powershell文章的声明: http ://technet.microsoft.com/en-us/library/ff730963.aspx
find一个好的资源:
以下是如何从Windows命令提示符执行的操作:
dsquery user -samid jxd123 | dsget user -memberof | dsget group -samid
电源shell:
Get-ADPrincipalGroupMembership -Identity jdoe | Format-Table -Property name
dsquery user -samid "user id" | dsget user -memberof > userid_memberof.txt
另一种方法:一个PowerShell脚本,列出来自Windows帐户令牌的所有隐式组成员资格。 在受限制的系统上工作。
$token = [System.Security.Principal.WindowsIdentity]::GetCurrent() ForEach($group in $token.Groups){ $group.Translate([System.Security.Principal.NTAccount]) }
$ADUser = Read-Host "Provide the AD User account" Get-ADPrincipalGroupMembership -Identity $ADUser | Sort-Object name | Format-Table -Expand name
adfind是这类事情的另一个很好的工具。 这是MVP Joe Richards的免费工具
http://www.joeware.net/freetools/tools/adfind/
你可以使用其中的一个简写
adfind -sc u:username memberof
如果你需要看自己的小组,那么有whoami /groups
:
显示当前用户所属的用户组。
这个命令在net user /domain username
的优点是隐式组成员身份也以whoami
显示。
此PowerShell版本仅返回AD组名称,而不是组的DN。 “select对象”输出可以轻松地传送到CSV或testing文件。
(Get-ADUser ExampleUser –Properties MemberOf).memberof | Get-ADGroup | Select-Object name
Powershell,给出了一个不错的和干净的输出。
(get-aduser USER -Properties MemberOf | select MemberOf).MemberOf | % {$_.split(",")[0].replace("CN=","")}
尝试这个:
gpresult -V /user blah