gpt4 book ai didi

powershell - 将所有本地成员和组一起显示

转载 作者:行者123 更新时间:2023-12-03 00:52:08 24 4
gpt4 key购买 nike

到目前为止,我拥有下面的脚本,它像一个 super 按钮一样工作,但是只列出了“管理员”组的成员。由于我的服务器可能是德语,法语...我无法保证这样的组将与英语单词一起存在。因此,我想对其进行调整以收集所有组和关联的成员,而不是仅收集管理员。。。

下面的脚本列出了非空本地组中的所有用户。但是,我想在CSV中也输入用户所属的组的名称,以便进行更清晰的解释。

有人可以帮我吗?我有点卡住,一无所有。

$Servers=Get-Content ListOfComputers.txt 
$output = 'ListOfLocalAdministratorsGroup.csv'
$results = @()

foreach($server in $Servers)
{
$admins = @()
$computer =[ADSI]"WinNT://$server"
$computer.psbase.children | where { $_.psbase.schemaClassName -eq 'group' } | foreach {
$group =[ADSI]$_.psbase.Path
$members = @($group.psbase.Invoke("Members"))
$members | foreach {
$obj = new-object psobject -Property @{
Server = $Server
Admin = $_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)
}
$admins += $obj
}}
$results += $admins
}
$results| Export-csv $Output -NoTypeInformation

最佳答案

本地管理员组将始终具有以下sid:S-1-5-32-544(在Well-known security identifiers in Windows operating systems.中记录)

因此,您可以将以下内容添加到脚本中以获得正确的组名:

$objSID = New-Object System.Security.Principal.SecurityIdentifier("S-1-5-32-544")
$objgroup = $objSID.Translate( [System.Security.Principal.NTAccount])
$objgroupname = ($objgroup.Value).Split("\")[1]

关于powershell - 将所有本地成员和组一起显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21288220/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com