是否有命令行方式列出特定Active Directory组中的所有用户?
通过pipe理计算机 – > 本地用户/组 – > 组 ,然后双击该组,可以查看组中的用户 。
我只需要一个命令行的方式来检索数据,所以我可以做一些其他的自动化任务。
尝试
dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members
这里是从命令提示符的另一种方式,不知道如何自动化,但因为你将不得不分析输出:
如果小组是“全球安全小组”:
net group <your_groupname> /domain
如果您正在寻找“域本地安全组”:
net localgroup <your_groupname> /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安装介质上的“支持工具”安装Admin Tools软件包,也可以从Microsoft下载站点下载。
您还可以使用PowerShell执行这些查询。 PowerShell已经作为Server 2008,2008 R2和Windows 7的一个可安装function提供,但是您需要下载WinRM Framework以将其安装在XP或Vista上。
要访问PowerShell中任何特定于AD的cmdlet,还需要执行以下至less一项安装:
对于不需要Quest AD加载项的PowerShell解决scheme,请尝试以下操作
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
使用PowerShell和Quest Software的Active Directory免费ActiveRolespipe理shell,您可以使用:
(Get-QADGroup“GroupName”)。成员
这里使用dsget和dsquery的答案仅适用于Windows的服务器版本,因为这些命令不会在其他版本的Windows(例如Windows 7)上提供。 在没有这些命令的机器上,您可以使用AdFind命令获取所需的信息。
以下是获取组成员资格的示例查询:
AdFind.exe -default -f name="Domain Admins" member -list
如何列出本地组和用户?
使用以下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中运行。
对于UserGroup1显示成员,请尝试:
dsquery group -name UserGroup1 | dsget group -members | dsget user -display