【问题标题】:Retrieving computers where specified user is in local admin group?检索指定用户在本地管理员组中的计算机?
【发布时间】:2013-09-20 19:40:17
【问题描述】:

我有 Windows 域网络,那里有大约 3000 台主机。我只想检查哪些主机在其本地管理员组中具有指定的技术用户帐户的信息。虽然我知道基本的东西,但我在 power shell 方面并不是那么出色。

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

什么是最好的解决方案?

【问题讨论】:

    标签: windows search powershell vbscript active-directory


    【解决方案1】:

    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
    }
    

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

    【讨论】:

    • 我已经设法获取所有域计算机的列表。我现在将如何运行该脚本?另外,我可以从非域管理员帐户运行它,即设置我正在寻找的帐户的凭据,我假设我应该得到拒绝访问回复,否则成功数据意味着该帐户在工作站上具有本地管理员权限。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多