从命令行获取用户的非截断Active Directory组


90

我经常使用该net user命令查看用户的广告组:

net user /DOMAIN <username>

这很好用,但是组名被截断为大约20个字符。在我的组织中,大多数组名都比这更长。

有谁知道通过命令行获取非截断的AD组的方法吗?


1
根据这个问题的日期,我猜想20个字符的截断不再是因为运行该命令返回名称较大的组而已。下面的答案whoami /groups也是一个很好的答案。但是,它仅列出当前登录的用户组。模仿和巧妙的编程可以解决这个问题;)
理查德·巴克

2
为我的组织域中的用户运行该文件;20个字符的截断仍然是一个问题。
SherlockSpreadsheets

好问题,阿瓜多!
巴特

Answers:


-9

您可以解析GPRESULT命令的输出。


68
没有示例,这是一个无用的答案
qujck

8
但这显然是正确无用的答案。
军阀099

它不显示AD组。它显示了很多其他内容,但没有显示AD组。
John Rocha

当时(在2009年提出并回答),这可能是实际执行OP所需的唯一方法。注意,他在组名中提到了20个字符后的截断。
理查德·巴克

@RichardBarker:NET USER的截断仍将在2019
Ross Presser

109

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
---------------------------------------------------

6
这应该是答案
LT

1
如果要查找特定的字符串,则可以使用findstr而不是将输出重定向到文件然后搜索该文件。例如,gpresult /user myAccount /r | findstr mySearchString
杰西

2
当我为用户帐户运行此程序时,它很棒,并且可以看到安全组。当我为另一个用户帐户运行它时,命令返回:用户“ userNameHere”没有RSOP数据。
SherlockSpreadsheets

59

有点陈旧的帖子,但我想知道这到底是怎么回事。“ whoami”是否满足您的需求?

我今天才发现(实际上是从将我带到这里的同一Google搜索)。从XP(工具包中的一部分)开始,Windows就有了whoami工具,而从Vista开始,它已经内置。

whoami /groups

列出当前登录用户的所有AD组。我相信确实需要您以该用户身份登录,因此,如果您的用例需要能够运行命令来查看其他用户,这将无济于事。

仅组名:

whoami /groups /fo list |findstr /c:"Group Name:"

我一直WhoAmI在获取用户名已有很长时间了,直到今天才意识到您可以用它做更多的事情!谢谢。
2015年

3
仅列出组名称:(for /f "tokens=1 delims=," %g in ('whoami /groups /fo csv /nh') do @echo "%~g"注意:使用%%而不是%在批处理文件中)
Lectrode 2015年

完善!不要犹豫,为陈旧的帖子提供新的答案!
巴特

5

或者您可以使用dsquerydsget

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远程服务器管理工​​具


1

在PowerShell中更简单的方法:

Get-ADPrincipalGroupMembership <username>

要求:您自己运行的帐户必须是与目标用户相同的域的成员,除非您指定-Credential-Server(未测试)。

另外,您必须安装Active Directory Powershell模块,正如@ dave-lucre在对另一个答案的评论中所说的那样,并非总是可以选择的。

仅对于组名,请尝试以下方法之一:

(Get-ADPrincipalGroupMembership <username>).Name
Get-ADPrincipalGroupMembership <username> |Select Name

1
好答案!这确实有效,但是我不太确定它是否使它更容易:)。您必须解析结果以获取组名列表(我将对此进行扩展!)。对于精通PS的技术人员而言,这不是挑战,但从DOS批处理过渡到PS绝非易事!
hector-j-rivas

0

1
如果没有安装Active Directory Powershell模块(并非总是这样),就无法做到这一点
Dave Lucre

1
尽管此链接可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会无效。-点评来源
Zulan

@Zulan:您在浪费7岁的答案!不仅如此,而且似乎还不一致,因为您没有以相同的方式评论已接受的答案。
米奇·

@MitchWheat:您是否注意到From Review他的评论结尾处的链接?他没有对已接受的答案发表评论,因为他没有在评论中发现它。
zondo

是的 我本以为审阅者至少会检查接受的答案。
米奇·麦特

0

根据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.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.