試圖僅列出在 Windows 作業站上啟用的本地管理員帳戶。
到目前為止有這個代碼,但我遇到了超出這一點的問題,試圖比較活動用戶是否是管理員。
$enabledUsers = (Get-LocalUser | Select * | sort Name, FullName, Enabled) | where-object enabled -eq $true
$enabledUsers | Select Name, Fullname
uj5u.com熱心網友回復:
您可以使用Get-LocalGroupMember獲取組的所有成員Administrators,但是此 cmdlet 不會告訴我們回傳的用戶是否已啟用,我們可以將每個用戶的 SID 傳遞給Get-LocalUser并過濾那些已啟用的用戶:
Get-LocalGroupMember Administrators | Where-Object { (Get-LocalUser $_.SID -EA 0).Enabled }
-EA 0本示例中使用( -ErrorAction SilentlyContinue) 是因為組的成員可能不屬于 User 類,在這種情況下,cmdlet 會拋出錯誤(我們希望避免這種情況)。
如果您需要LocalUser物件而不是LocalPrincipal物件,則可以使用它來代替:
Get-LocalGroupMember Administrators | ForEach-Object {
if(($usr = Get-LocalUser $_.SID -EA 0) -and $usr.Enabled) {
$usr | Select-Object Name, FullName
}
}
uj5u.com熱心網友回復:
Get-LocalGroupMember Adminstrators | Where-Object {$_.PrincipalSource -ne "ActiveDirectory"} | select sid | ForEach-Object {
Get-LocalUser $_.sid | Where-Object {$_.Enabled -eq $True } | select name, enabled
}
如果您還需要過濾掉 AD 管理員
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/460731.html
