通过转到“管理计算机”->“本地用户/组”->“组”,我可以看到谁在该组中并双击该组。
我只需要一种命令行方式即可检索数据,因此我可以执行其他一些自动化任务。
#1 楼
试试dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members
#2 楼
这是命令提示符下的另一种方法,虽然由于必须分析输出,所以不确定其自动化程度:如果组是“全局安全组”:
net group <your_groupname> /domain
如果您正在寻找“域本地安全组”:
net localgroup <your_groupname> /domain
评论
不知道为什么不赞成这样做……输出可能需要一点解析,但是它的优点是仅依赖于基本Windows安装中的实用程序。
– G-Wiz
2011年7月14日在16:07
但是,被截断的组名周围有什么办法吗?
–deed02392
13-10-14在11:19
这很棒!工作了请客。
– WOPR
2015年5月11日在6:26
请注意,这不是递归的,也不列出组中的组。如果您有嵌套或分层的组,则不是很有帮助。
–马克
15年6月19日在20:05
这对我来说非常有效(并且与网络用户/ domain很好地配合使用)。谢谢!
– xan
16 Mar 23 '16 at 20:05
#3 楼
这是ds命令的一个版本,我发现它通常更有用,尤其是在您具有复杂的OU结构且不一定知道该组的完整专有名称的情况下。dsquery group -samid "Group_SAM_Account_Name" | dsget group -members -expand
,或者如果您知道该组的CN,通常与SAM ID相同,请在名称中包含空格的情况下引用该名称:
dsquery group -name "Group Account Name" | dsget group -members -expand
注释,默认情况下,ds *命令(dsquery,dsget,dsadd,dsrm)仅在域控制器上可用。但是,您可以从Windows Server安装媒体上的支持工具安装管理工具包,也可以从Microsoft下载站点下载它。
还可以使用PowerShell执行这些查询。 PowerShell已经可以作为Server 2008、2008 R2和Windows 7的可安装功能使用,但您需要下载WinRM Framework才能在XP或Vista上安装。
要访问任何版本,在PowerShell中,AD特定的cmdlet还需要至少执行以下安装之一:对于Win 7和2008 R2客户端,您可以安装远程服务器管理工具。 RSAT还要求您在Server 2008 R2域控制器上安装了Active Directory Web服务功能,或在任何Server 2003/2008 DC上安装了Active Directory管理网关服务。
对于任何XP或更高版本的客户端,请下载并安装用于Active Directory的Quest ActiveRoles命令行管理程序。 Quest工具不需要对DC进行任何其他更改。
评论
我一直都在使用第一个查询
– Jim B
09年8月3日在20:29
请注意,您必须在域控制器上运行此命令。
– Skolima
2011-3-24在11:49
您不必在域控制器上运行此命令。但是,您确实需要安装Windows 2003 Server CDROM上的“支持工具”中包含的Admin Support Pack .msi。或从microsoft.com/downloads/en/…下载它
– Ryan Fisher
2011-3-24 15:50
#4 楼
对于不需要Quest AD加载项的PowerShell解决方案,请尝试以下操作Import-Module ActiveDirectory
Get-ADGroupMember "Domain Admins" -recursive | Select-Object name
这还将枚举嵌套的组。如果您不想这样做,请删除-recursive开关。
评论
您是正确的,ActiveDirectory模块不需要Quest ActiveRoles AD管理单元,但确实需要安装RSAT工具,并且您的AD至少具有一个带有Active Directory Web Service的DC(用于2008) R2)或Active Directory管理网关服务(用于2003、2008 DC)。有关详细信息和链接,请参见上面的答案。
– Ryan Fisher
2011年10月11日19:36
#5 楼
在服务器和客户端上工作的一种非常简单的方法:NET GROUP "YOURGROUPNAME" /DOMAIN | find /I /C "%USERNAME%"
如果用户在YOURGROUPNAME组中,则返回1,否则将返回0
然后可以使用%ERRORLEVEL%值(如果组中的用户为0,否则为1),例如
IF %ERRORLEVEL%==0 NET USE %LOGONSERVER%\YOURGROUPSHARE
评论
“ net group”命令仅搜索连接计算机的域(或域树)。一个更现代的替代方法是:whoami / groups |找到/ I / C“ YOURGROUPNAME”
– DavisNT
15年9月15日在17:04
#6 楼
使用PowerShell和Quest Software的Active Directory免费ActiveRoles命令行管理程序,可以使用:(Get-QADGroup“ GroupName”)。成员
http://www.quest .com / powershell / activeroles-server.aspx
评论
另外:Get-QADGroupMember'GroupName'
–戈登·贝尔
2012年8月9日15:13
看起来Quest的AD工具现在可能已失效,并且该链接当前已重定向到名为Active Roles的付费产品的oneidentity.com/products/active-roles
– KyleMit
20 May 14 '19:41
哦,真糟糕。持续的时间很好。
–戈登·贝尔
20年5月19日在19:11
#7 楼
使用dsget
和dsquery
的答案仅适用于Windows服务器版本,因为其他版本的Windows(例如Windows 7)未附带这些命令。在没有这些命令的计算机上,您可以使用AdFind命令获得所需的信息。以下是获取组成员身份的示例查询:
AdFind.exe -default -f name="Domain Admins" member -list
评论
ADFind.exe是您仍然必须安装的第三方工具。 ds *命令可通过管理工具包安装。
– Ryan Fisher
2011年10月11日19:37
#8 楼
如何列出本地组和用户?使用以下powershell脚本列出本地组和这些组的成员。
$server="YourServerName"
$computer = [ADSI]"WinNT://$server,computer"
$computer.psbase.children | where {
$_.psbase.schemaClassName -eq 'group' } | foreach {
write-host $_.name
write-host "------"
$group =[ADSI]$_.psbase.Path
$group.psbase.Invoke("Members") | foreach {
$_.GetType().InvokeMember("Name", 'GetProperty',
$null, $_, $null)}
write-host
}
复制上面的文本进入记事本并另存为
filename.ps1
。然后运行文件。我应该显示每个组中的“组”和“用户”,或者您可以只通过powershell来运行它。评论
我在命令管道位置1获得cmdlet ForEach-Object。为以下参数提供值:然后在输入中请求Process [0]
– Mike S
16 Mar 18 '16 at 13:55
#9 楼
对于UserGroup1
的显示成员,请尝试:dsquery group -name UserGroup1 | dsget group -members | dsget user -display
评论
可能想指出要在其中使用什么CLI实用程序。出于某些原因,我认为cmd不能很好地发挥作用。
–HopelessN00b
2012年10月10日9:01
@ HopelessN00b:这在cmd中有效
– Pete
2012年11月7日在20:42
@Pete Newp! dsget失败:“此命令的目标对象”丢失。
–HopelessN00b
2012年11月7日20:53
@ HopelessN00b:如果UserGroup1不存在,我会收到错误消息,请尝试使用“ Accounting *”
– Pete
2012年11月7日在21:48
评论
您可能需要做更多的工作才能解析嵌套组中的成员和重复成员。
–duffbeer703
09年8月9日在20:49
dsget组“ CN = GroupName,DC = domain,DC = name,DC = com” -members -expand为您提供嵌套组中的成员,尽管它可能对重复项没有帮助,并且为您提供了完整的AD查询字符串成员,而不仅仅是他们的CN。
– jonnybot
2014年7月1日在19:08
在Win7 SP1上找不到命令。我猜您需要安装RSAT吗?
– Iszi
2014年11月12日19:54
无法将“ dsget”识别为内部或外部命令等。
–道地蒜
2015年11月25日在9:56
@adolfgarlic-stackoverflow.com/questions/8514599/…
–照看孩子的人
17年7月19日在19:24