![如何列出域用户组可以管理的所有域机器?](https://linux22.com/image/804603/%E5%A6%82%E4%BD%95%E5%88%97%E5%87%BA%E5%9F%9F%E7%94%A8%E6%88%B7%E7%BB%84%E5%8F%AF%E4%BB%A5%E7%AE%A1%E7%90%86%E7%9A%84%E6%89%80%E6%9C%89%E5%9F%9F%E6%9C%BA%E5%99%A8%EF%BC%9F.png)
多年来,我的域中有许多额外和重复的用户组。所以我需要确定特定组对哪台机器具有管理权限。我进行了大量搜索,但确实找不到解决方案。有什么好主意吗?
谢谢
答案1
您可以使用 PowerShell 查询远程计算机的本地组成员身份。在 PowerShell V1 和 V2 中,您可以使用 Windows Management Instrumentation (WMI) 实现此目的。PowerShell V3 具有本机 cmdlet。
但是,坚持使用 V2(最有可能可用的版本),您可以使用以下方式获取远程计算机的本地管理员组成员:
$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 中的所有计算机对象......
答案2
如果我理解正确的话,您想列出您域中每台机器的本地管理员是谁?
您必须连接到每台计算机并列出本地管理员组。据我所知,这些信息不会保存在 Active Directory 或任何其他东西中。有几种方法可以做到这一点,但其中一种方法是使用免费工具执行在每台 PC 上转储组成员身份。
首先,您必须生成一份要获取此信息的所有 Windows 计算机的列表。将其保存到纯文本文件中,主机名或 IP 各占一行。
从命令提示符运行以下命令:
psexec.exe @主机名.txt-u用户-p密码网络本地组“管理员”>输出文件.txt
(在哪里用户和密码是域管理员帐户)。
这将花费相当多的时间,具体取决于您要扫描的主机数量,但您应该有一个具有本地管理员访问权限的组/帐户的列表。