有没有一种简单的方法可以使用powershell显示计算机上所有事件的本地Windows组以及作为这些组一部分的用户?这个问题的第二部分是它是否可以扩展为一次查看多台机器。

最佳答案

实际上,您可以使用ADSI类型快捷方式和WinNT名称。这是一个列出您自己计算机上的组和成员的示例:

$server="."
$computer = [ADSI]"WinNT://$server,computer"

$computer.psbase.children | where { $_.psbase.schemaClassName -eq 'group' } | foreach {
    write-host $_.name
    write-host "------"
    $group =[ADSI]$_.psbase.Path
    $group.psbase.Invoke("Members") | foreach {$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)}
    write-host
}

10-04 13:50