2017-04-27 60 views
-3

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

这是上述脚本的输出。
“计算机名”, “用户”
“mbptl-WS01”, “mbadmin”
“mbptl-WS01”, “客人”
“mbptl-WS01”, “SV-DTB-PR”

请帮忙按组聚合(即显示用户)

+3

“*我们公司不使用AD Poweshell模块*” - 那么开始使用它? – TessellatingHeckler

+0

为什么贵组织无法使用Microsoft提供的工具? – lit

+1

AD与当地团体有什么关系?这个问题与AD有什么关系?你只是询问_local_群组是吗?你的预期产出是多少?你能展示一个样本吗?你有没有尝试过,因为它看起来是你粘贴的代码和我们要做的所有工作?我们希望提供帮助,但努力需要很长时间,我们需要更多地了解最终目标。 – Matt

回答