我有 Windows 域网络,那里有大约 3000 台主机。我只想检查哪些主机在其本地管理员组中具有指定的技术用户帐户的信息。尽管我知道基本的东西,但我在 power shell 方面并不是那么出色。
我相信我必须列出我拥有的几个子网中的所有主机,然后运行一个脚本,该脚本将尝试使用查看帐户凭据登录这些主机。
什么可能是最好的解决方案?
我有 Windows 域网络,那里有大约 3000 台主机。我只想检查哪些主机在其本地管理员组中具有指定的技术用户帐户的信息。尽管我知道基本的东西,但我在 power shell 方面并不是那么出色。
我相信我必须列出我拥有的几个子网中的所有主机,然后运行一个脚本,该脚本将尝试使用查看帐户凭据登录这些主机。
什么可能是最好的解决方案?
There is a very detailed post on TechNet about listing all computers in domain.
And here's the WMI query part (PowerShell, $aComputerList is a list of computer names):
foreach ($sComputerName in $aComputerList) {
$sUserPattern = 'Win32_UserAccount.Domain="domainname",Name="username"'
$sGroupPattern = 'Win32_Group.Domain="{0}",Name="Administrators"' -f $sComputerName
$oResult = Get-WmiObject -ComputerName $sComputerName -Class Win32_GroupUser | `
Where-Object {
($_.groupcomponent -match $sGroupPattern) -and `
($_.partcomponent -match $sUserPattern)
}
[Bool]$oResult
}
The hard part is that some computers probably won't be reachable (if they're turned off for instance). So you'll need to run your script several times and remove computers from the list as you get responses from them.