我知道有一个管理员组,但我需要一个只针对标准用户的组来执行此命令。FOR /f "skip=6 delims=" %%u IN ('net localgroup (Group here)') DO (IF "%%u" NEQ "The command completed successfully." echo %%u)
我需要它来列出所有标准用户。顺便说一句,我使用批处理和 powershell 编码。
谢谢!〜亨利
答案1
取决于域或工作组模式,并根据微软,您的组名应该是用户或者高级用户对于工作组和域用户对于域名。
答案2
在独立机器上,该Users
组包含所有普通用户以及来自的几个特殊组类主体NT AUTHORITY
。
net localgroup Users
在 PowerShell 中,这相当于:
Get-LocalGroupMember 'Users'
或者,您可以使用 WMI 查询来获取真实帐户:
wmic useraccount
其中包括Guest
帐户、DefaultAccount
和内置的Administrator
。您可以从 PowerShell 的获得相同的结果Get-LocalUser
。
如果您只想列出已启用的帐户,您可以缩小查询范围:
wmic useraccount where "Disabled = FALSE"
PowerShell 中也一样:
Get-LocalUser | ? {$_.Enabled}
测试给定用户(在变量中$u
)是否是管理员:
(Get-LocalGroupMember 'Administrators' | ? {$_.SID -eq $u.SID}).Count -ne 0
这将获取管理员组的成员,并检查是否有任何成员与给定的用户对象具有相同的 SID(安全标识符)。您可以从Get-LocalUser
或获取这样的用户对象Get-LocalGroupMember
。