检索指定用户在本地管理员组中的计算机?

时间:2013-09-20 19:40:17

标签: windows search powershell vbscript active-directory

我有Windows域网,我有大约3000台主机。我想查看在本地管理员组中指定了技术用户帐户的主机的信息。虽然我知道基本的东西,但我在力量上并不是那么出色。

我相信我必须列出我拥有的几个子网中的所有主机,然后运行一个脚本,尝试使用查看帐户凭据登录这些主机。

什么是最好的解决方案?

1 个答案:

答案 0 :(得分:0)

TechNet上有一篇关于listing all computers in domain的非常详细的帖子。

这是WMI查询部分(PowerShell,$ aComputerList是计算机名称列表):

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
}

困难的部分是某些计算机可能无法访问(例如,如果它们被关闭)。因此,您需要多次运行脚本,并在获得响应时从列表中删除计算机。