我经常使用该net user
命令查看用户的广告组:
net user /DOMAIN <username>
这很好用,但是组名被截断为大约20个字符。在我的组织中,大多数组名都比这更长。
有谁知道通过命令行获取非截断的AD组的方法吗?
我经常使用该net user
命令查看用户的广告组:
net user /DOMAIN <username>
这很好用,但是组名被截断为大约20个字符。在我的组织中,大多数组名都比这更长。
有谁知道通过命令行获取非截断的AD组的方法吗?
Answers:
您可以解析GPRESULT命令的输出。
GPRESULT
是正确的命令,但是没有参数就无法运行。 /v
或冗长的选项很难在不输出到文本文件的情况下进行管理。EG,我建议使用
gpresult /user myAccount /v > C:\dev\me.txt
-确保C:\ Dev \ me.txt存在
另一个选项是仅显示摘要信息,该信息可能在命令窗口中完全可见:
gpresult /user myAccount /r
这些帐户在标题下列出:
The user is a part of the following security groups
---------------------------------------------------
findstr
而不是将输出重定向到文件然后搜索该文件。例如,gpresult /user myAccount /r | findstr mySearchString
。
有点陈旧的帖子,但我想知道这到底是怎么回事。“ whoami”是否满足您的需求?
我今天才发现(实际上是从将我带到这里的同一Google搜索)。从XP(工具包中的一部分)开始,Windows就有了whoami工具,而从Vista开始,它已经内置。
whoami /groups
列出当前登录用户的所有AD组。我相信确实需要您以该用户身份登录,因此,如果您的用例需要能够运行命令来查看其他用户,这将无济于事。
仅组名:
whoami /groups /fo list |findstr /c:"Group Name:"
WhoAmI
在获取用户名已有很长时间了,直到今天才意识到您可以用它做更多的事情!谢谢。
for /f "tokens=1 delims=," %g in ('whoami /groups /fo csv /nh') do @echo "%~g"
注意:使用%%
而不是%
在批处理文件中)
或者您可以使用dsquery和dsget:
dsquery user domainroot -name <userName> | dsget user -memberof
要检索组成员身份,例如:
Tue 09/10/2013 13:17:41.65
C:\
>dsquery user domainroot -name jqpublic | dsget user -memberof
"CN=Technical Support Staff,OU=Acme,OU=Applications,DC=YourCompany,DC=com"
"CN=Technical Support Staff,OU=Contosa,OU=Applications,DC=YourCompany,DC=com"
"CN=Regional Administrators,OU=Workstation,DC=YourCompany,DC=com"
尽管我找不到在计算机上安装此软件包的任何证据,但是您可能需要安装Windows 7的远程服务器管理工具。
在PowerShell中更简单的方法:
Get-ADPrincipalGroupMembership <username>
要求:您自己运行的帐户必须是与目标用户相同的域的成员,除非您指定-Credential
和-Server
(未测试)。
另外,您必须安装Active Directory Powershell模块,正如@ dave-lucre在对另一个答案的评论中所说的那样,并非总是可以选择的。
仅对于组名,请尝试以下方法之一:
(Get-ADPrincipalGroupMembership <username>).Name
Get-ADPrincipalGroupMembership <username> |Select Name
From Review
他的评论结尾处的链接?他没有对已接受的答案发表评论,因为他没有在评论中发现它。
根据P.Brian.Mackey的回答-我尝试使用gpresult /user <UserName> /r
命令,但是它似乎只对我的用户帐户有效;对于其他用户帐户,我得到了以下结果:The user "userNameHere" does not have RSOP data
。
所以我通读了这个博客-https : //blog.thesysadmins.co.uk/group-policy-gpresult-examples.html-并提出了解决方案。您必须知道用户的计算机名称:
gpresult /s <UserComputer> /r /user:<UserName>
运行该命令后,您需要ENTER
几次才能完成该程序,因为它将在输出中间暂停。同样,结果给出了很多数据,包括“ COMPUTER SETTINGS> Applied Group Policy Objects
”,“ COMPUTER SETTINGS> Security groups
”,最后是“ USER SETTINGS> security groups
”的部分(这是我们在列出带有非截断描述的广告组时所要寻找的!)。
有趣的是,GPRESULT还有一些在NET USER命令中看不到的额外成员。此外,排序顺序不匹配且不是字母顺序。任何可以在评论中增加更多见解的机构。
结果: gpresult (with ComputerName, UserName)
出于安全原因,我只包括一部分成员资格结果。(总共36个样本,共12个样本)
The user is a part of the following security groups
---------------------------------------------------
..
Internet Email
GEVStandardPSMViewers
GcoFieldServicesEditors
AnimalWelfare_Readers
Business Objects
Zscaler_Standard_Access
..
GCM
..
GcmSharesEditors
GHVStandardPSMViewers
IntranetReportsViewers
JetDWUsers -- (NOTE: this one was deleted today, the other "Jet" one was added)
..
Time and Attendance Users
..
结果: net user /DOMAIN (with UserName)
出于安全原因,我只包括一部分成员资格结果。(共23个样本,12个样本)
Local Group Memberships
Global Group memberships ...
*Internet Email *GEVStandardPSMViewers
*GcoFieldServicesEdito*AnimalWelfare_Readers
*Business Objects *Zscaler_Standard_Acce
...
*Time and Attendance U*GCM
...
*GcmSharesEditors *GHVStandardPSMViewers
*IntranetReportsViewer*JetPowerUsers
The command completed successfully.
whoami /groups
也是一个很好的答案。但是,它仅列出当前登录的用户组。模仿和巧妙的编程可以解决这个问题;)