提问人:Darren 提问时间:4/20/2022 更新时间:4/20/2022 访问量:1546
如何仅列出已启用的本地管理员
How to list only enabled local administrators
问:
尝试仅列出在 Windows 工作站上启用的本地管理员帐户。
到目前为止有此代码,但我在尝试比较活动用户是否为管理员时遇到了超出这一点的问题。
$enabledUsers = (Get-LocalUser | Select * | sort Name, FullName, Enabled) | where-object enabled -eq $true
$enabledUsers | Select Name, Fullname
答:
0赞
Santiago Squarzon
4/20/2022
#1
可用于获取组的所有成员,但此 cmdlet 不会告诉我们返回的用户是否已启用,我们可以将每个用户的 SID 传递给这些已启用的用户并筛选这些已启用的用户:Get-LocalGroupMember
Administrators
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
}
}
0赞
mallockey
4/20/2022
#2
Get-LocalGroupMember Adminstrators | Where-Object {$_.PrincipalSource -ne "ActiveDirectory"} | select sid | ForEach-Object {
Get-LocalUser $_.sid | Where-Object {$_.Enabled -eq $True } | select name, enabled
}
如果您还需要筛选出 AD 管理员
评论