在下面的脚本中,它将打印组的所有用户。但是,是否缺少域名(某些用户在不同的Windows域中)?
$computer = [ADSI]"WinNT://$server,computer"
$computer.psbase.children | ? {
$_.psbase.schemaClassName -eq 'group'
} | % {
$gn = $_.name.ToString()
write-host $gn
write-host "------"
$group =[ADSI]$_.psbase.Path
$group.psbase.Invoke("Members") | % {
$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)
}
}发布于 2017-04-25 14:24:21
我们有一个类似的问题,在计算机上有来自不同领域的帐户,我们需要域名回来。不幸的是,SID提取不能工作,我认为本地帐户和在某些情况下计算机被加入的域,所以它没有返回所有的结果。
这是我为我们找到的最好的解决方案:
Admin = $_.GetType().InvokeMember("AdsPath", 'GetProperty', $null, $_, $null)将返回类似的结果
WinNT://#domain#/#account#或WinNT://#domain of computer#/#computer-name#/#account#
地方帐户
$servers= get-content 'C:\temp\work\localadmins\serverlist_in.txt'
$output = 'C:\temp\work\localadmins\serverlist_out.csv'
$results = @()
foreach($server in $servers)
{
$admins = @()
$group =[ADSI]"WinNT://$server/Administrators"
$members = @($group.psbase.Invoke("Members"))
$members | foreach {
$obj = new-object psobject -Property @{
Server = $Server
Admin = $_.GetType().InvokeMember("AdsPath", 'GetProperty', $null, $_, $null)
}
$admins += $obj
}
$results += $admins
}
$results | Export-csv $Output -NoTypeInformationhttps://stackoverflow.com/questions/32665284
复制相似问题