使用PowerShell获取管理员组

时间:2017-04-27 12:38:07

标签: powershell

我在拥有300名用户的公司担任系统管理员 我正在寻找一个PowerShell脚本来获取所有组,每个组中的用户以及位于加入单个域的多个服务器的本地管理组的其他单个用户。

这就是我所拥有的,但它只适用于本地用户。

# Get local and Groups Users List with Content

function get-localusers {
    param(
    [Parameter(Mandatory=$true,valuefrompipeline=$true)]
    [string]$strComputer)
    begin {}
    Process {
      $Select = "Name","Class" | %{  
      Invoke-Expression "@{n='$_';e={ `$_.GetType().InvokeMember('$_', 'GetProperty', `$Null, `$_, `$Null) }}"  
       }
        If (Test-Connection $strComputer -Count 2 -Quiet){
         $computer = [ADSI]("WinNT://" + $strComputer + ",computer")
         $Users = $computer.psbase.children | ? {$_.psbase.SchemaClassName -eq "User"}
                foreach ($User in $Users) {
                  $User | Select @{N="ComputerName";E={$strComputer}},@{N="User";E={$_.Name}},Class
                }
        }
      Else {
          "" | Select @{N="ComputerName";E={$strComputer}},@{N="User";E={"Not able to Ping"}},Class
        }
      }
end {}
}
Get-Content "c:\temp\Servers.txt" | get-localusers | Select ComputerName,User | Export-Csv "c:\temp\Local-User_$((get-date).toString('MM-dd-yyyy')).csv" -NTI

这是上面脚本的输出 “ComputerName”,“用户”
“mbptl-WS01”, “mbadmin”
“mbptl-WS01”, “客户”
“mbptl-WS01”, “SV-DTB-PR”

请按群组(显示用户)进行汇总

1 个答案:

答案 0 :(得分:0)

似乎这是一个好的开始:
https://4sysops.com/archives/create-a-list-of-local-administrators-with-powershell/

看起来这至少会让你成为几台电脑的成员