Dependendo do modo de domínio ou grupo de trabalho e de acordo com a Microsoft , os nomes dos grupos devem ser < em> Usuários ou Usuários avançados para grupos de trabalho e Usuários de domínio para domínios.
Eu sei que existe um grupo para administradores, mas preciso de um para usuários padrão apenas para esse comando. FOR /f "skip=6 delims=" %%u IN ('net localgroup (Group here)') DO (IF "%%u" NEQ "The command completed successfully." echo %%u)
Preciso listar todos os usuários padrão. BTW eu uso o lote e codificação PowerShell.
Obrigado! ~ Henry
Dependendo do modo de domínio ou grupo de trabalho e de acordo com a Microsoft , os nomes dos grupos devem ser < em> Usuários ou Usuários avançados para grupos de trabalho e Usuários de domínio para domínios.
Em uma máquina autônoma, o grupo Users
contém todos os usuários normais e alguns diretores especiais parecidos com grupos de NT AUTHORITY
.
net localgroup Users
No PowerShell, isso é equivalente a:
Get-LocalGroupMember 'Users'
Como alternativa, você pode usar uma consulta WMI para obter somente contas reais:
wmic useraccount
Isso inclui a conta Guest
, DefaultAccount
e a Administrator
incorporada. Você obtém os mesmos resultados do Get-LocalUser
do PowerShell.
Se você deseja listar apenas contas ativadas, pode restringir a consulta:
wmic useraccount where "Disabled = FALSE"
O mesmo no PowerShell:
Get-LocalUser | ? {$_.Enabled}
Para testar se um determinado usuário (na variável $u
) é um administrador:
(Get-LocalGroupMember 'Administrators' | ? {$_.SID -eq $u.SID}).Count -ne 0
Isso obtém os membros do grupo Administradores e verifica se há algum membro com o mesmo SID (identificador de segurança) que o objeto de usuário fornecido. Você pode obter esse objeto de usuário de Get-LocalUser
ou Get-LocalGroupMember
.