我尝试了以下操作:
dsget user "DC=jxd123" -memberof
错误:
dsquery failed:'-memberof' is an unknown parameter.
type dsquery /? for help.
#1 楼
您可以在PowerShell中轻松完成此操作。我确定您也可以使用ds工具来完成此操作,但它们又旧又硬,现在应将PowerShell用于所有可能的用途。Import-Module ActiveDirectory
(Get-ADUser userName –Properties MemberOf | Select-Object MemberOf).MemberOf
更短的版本
(Get-ADUser userName –Properties MemberOf).MemberOf
评论
我下载了Powershell,现在有一个* .msu文件。如何使用* .msu文件安装它?
– MacGyver
13年8月19日在18:51
您在什么操作系统上? PowerShell内置于XP以外的任何版本中,并且XP作为可选的Windows Update可用。
– MDMarra
13年8月19日在18:53
Windows XP ..我的公司运行缓慢:-\
– MacGyver
13年8月19日在18:57
然后您下载了错误的安装程序。而且,仅需注意,XP支持将在不到一年的时间内终止。让升级动起来! microsoft.com/en-us/windows/endofsupport.aspx
– MDMarra
13年8月19日在18:58
Get-ADPrincipalGroupMembership是在PowerShell中执行此操作的另一种方法。
– Nic
13年8月20日在7:43
#2 楼
或使用net用户命令...net user /domain username
评论
我喜欢某些“旧” DOS命令提供的简单性。而且,它们一直都在那儿,因此即使您没有在旧计算机上加载PoSH,DOS也能助您一臂之力!感谢您发布此信息。
–杰夫·摩登(Jeff Moden)
2014年11月4日在21:06
这将仅返回显式的组成员身份,而不返回隐式的组成员身份。
– Elias Probst
2014年11月5日22:45
流畅的命令,但是,输出中的组名将被截断为21个字符... :-(
–t0r0X
15年3月16日在13:37
是的,有限制。嵌套的组成员身份未显示,而您是正确的,输出将被截断。诚然,我没有考虑后者。
–杰克
2015年6月23日下午0:18
效果很好,但是为什么会被截断呢?是否可以为完整的组名添加配置/参数?
– ThinkCode
16年8月17日在14:44
#3 楼
单行,无需模块,使用当前登录的用户$($ env:username),可从其他Windows计算机上运行:(New-Object System.DirectoryServices.DirectorySearcher("(&(objectCategory=User)(samAccountName=$($env:username)))")).FindOne().GetDirectoryEntry().memberOf
对此vbs / powershell文章的认可: http://technet.microsoft.com/zh-cn/library/ff730963.aspx
评论
很好的解决方案,它是唯一对我有用的解决方案,无需安装任何其他软件!谢谢!
–t0r0X
于15:46标记16年15日
+1可在没有任何其他软件的受限系统上工作!
–芥末酱
16年8月11日在7:50
#4 楼
找到了很好的资源:http://social.technet.microsoft.com/wiki/contents/articles/2195.active-directory-dsquery-commands.aspx
从Windows命令提示符执行以下操作:
dsquery user -samid jxd123 | dsget user -memberof | dsget group -samid
#5 楼
PowerShell:Get-ADPrincipalGroupMembership -Identity jdoe | Format-Table -Property name
#6 楼
如果需要查看自己的组,请使用whoami /groups
:显示当前用户所属的用户组。
在
net user /domain username
上执行此命令的原因是,隐式组成员身份也与whoami
一起显示。评论
最佳解决方案。已投票。简短而甜美。不截断。我个人最喜欢LIST格式,即whoami / groups / fo list,因为它是最容易用眼睛阅读的格式。
–彼得
17 Feb 17 '14:15
#7 楼
另一种方法:PowerShell脚本,该脚本列出Windows帐户令牌中的所有隐式组成员身份。在受限制的系统上工作。$token = [System.Security.Principal.WindowsIdentity]::GetCurrent()
ForEach($group in $token.Groups){
$group.Translate([System.Security.Principal.NTAccount])
}
#8 楼
dsquery user -samid "user id" | dsget user -memberof > userid_memberof.txt
#9 楼
$ADUser = Read-Host "Provide the AD User account"
Get-ADPrincipalGroupMembership -Identity $ADUser | Sort-Object name | Format-Table -Expand name
#10 楼
adfind是用于此类事情的另一种出色工具。它是MVP Joe Richards的免费工具。http://www.joeware.net/freetools/tools/adfind/
您可以使用其中一种shortucts
adfind -sc u:username memberof
#11 楼
此PowerShell版本仅返回AD组名,而不返回组的DN。 “选择对象”输出可以轻松地通过管道传输到CSV或测试文件。(Get-ADUser ExampleUser –Properties MemberOf).memberof | Get-ADGroup | Select-Object name
#12 楼
Powershell,提供了一个整洁的输出。(get-aduser USER -Properties MemberOf | select MemberOf).MemberOf | % {$_.split(",")[0].replace("CN=","")}
#13 楼
这是一个搜索给定域下的所有域的解决方案(假设每个域都有适当的权限):# 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
使用Get-ADPrincipalGroupMembership
#14 楼
试试这个:gpresult -V /user blah
评论
当您执行dsget时,您肯定不会对dsquery出错。复制粘贴失败?仅供参考,在StackOverflow上发现了相同的问题,并给出了更多答案。
我没有足够的声誉来回答,但是假设您使用的是Powershell,则可以这样编写:Get-ADPrincipalGroupMembership用户名|选择名称