如何列出域用户组可以pipe理的所有域计算机?

多年来,我的中有许多额外的和重复的用户。 所以我需要确定一个特定的组具有pipe理权限的机器。 我做了相当多的search,但我肯定无法find解决scheme。 任何好主意?

谢谢

您可以使用PowerShell查询远程计算机的本地组成员身份。 在PowerShell V1和V2中,您可以使用Windows Management Instrumentation(WMI)来实现此目的。 PowerShell V3具有本地cmdlet。

但是,坚持使用V2(最有可能的版本),您可以使用以下方式获取远程计算机的本地pipe理员组成员:

$strComputer = "computer-name-to-query"; Get-WmiObject -Class "Win32_GroupUser" -ComputerName $strComputer | Where-Object{ $_.GroupComponent -match "Name=""Administrators""" } | ForEach-Object{ Write-Host -Object ( "{0} : {1}\{2}" -f $strComputer, ([wmi] $_.PartComponent ).Domain, ([wmi] $_.PartComponent).Name ) }; 

这可以捆绑在一个脚本中,首先查询所有计算机对象的Active Directory …

如果我理解这个问题,您想列出域中每台计算机上的本地pipe理员是谁?

您必须连接到每台机器并列出本地pipe理员组。 据我所知,这个信息不保存在Active Directory或任何东西。 有几种方法可以解决这个问题,但是一种方法是使用免费工具psexec在每台PC上转储组成员资格。

首先,您必须生成所有希望获取此信息的Windows机器的列表。 将其保存到纯文本文件中,每个主机名或IP都在自己的行上。

从命令提示符运行以下命令:

psexec.exe @ hosts.txt -u 用户 -p 密码 net localgroup“pipe理员”> outputfile.txt

(其中用户密码是域pipe理员帐户)。

这将需要相当长的时间,具体取决于您正在扫描的主机数量,但您应该拥有本地pipe理员访问权限的组/帐户列表。