Answers:
尝试
dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members
dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members -expand
可为您提供嵌套组中的成员,尽管这可能对重复项没有帮助,并且它为您提供了成员的完整AD查询字符串,而不仅仅是您的CN。
这是命令提示符下的另一种方式,虽然由于必须解析输出,所以不确定如何自动化:
如果组是“全局安全组”:
net group <your_groupname> /domain
如果您正在寻找“域本地安全组”:
net localgroup <your_groupname> /domain
net user /domain
)。谢谢!
这是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,您将ALSO需要执行以下安装的至少一个:
对于不需要Quest AD加载项的PowerShell解决方案,请尝试以下操作
Import-Module ActiveDirectory
Get-ADGroupMember "Domain Admins" -recursive | Select-Object name
这还将枚举嵌套的组。如果您不想这样做,请删除-recursive开关。
在服务器和客户端上工作的非常简单的方法:
NET GROUP "YOURGROUPNAME" /DOMAIN | find /I /C "%USERNAME%"
如果用户在YOURGROUPNAME组中,则返回1,否则将返回0
然后,您可以使用%ERRORLEVEL%值(如果组中的用户为0,否则为1)
IF %ERRORLEVEL%==0 NET USE %LOGONSERVER%\YOURGROUPSHARE
whoami /groups | find /I /C "YOURGROUPNAME"
使用PowerShell和Quest Software的Active Directory免费ActiveRoles命令行管理程序,您可以使用:
(Get-QADGroup“ GroupName”)。成员
如何列出本地组和用户?
使用以下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运行它。
cmdlet ForEach-Object at command pipeline position 1. Supply values for the following parameters:
然后要求输入Process[0]
对于UserGroup1
尝试展示的成员:
dsquery group -name UserGroup1 | dsget group -members | dsget user -display
cmd
出于某种原因,我认为该实用程序不太适合。
dsget failed:'Target object for this command' is missing.