Saltar al contenido

powershell: enumera los usuarios locales y sus grupos

Solución:

Para los empleados de Google, otra forma de obtener una lista de usuarios es utilizar:

Get-WmiObject -Class Win32_UserAccount

De http://buckeyejeeps.com/blog/?p=764

$adsi = [ADSI]"WinNT://$env:COMPUTERNAME"
$adsi.Children | where {$_.SchemaClassName -eq 'user'} | Foreach-Object {
    $groups = $_.Groups() | Foreach-Object {$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)}
    $_ | Select-Object @{n='UserName';e={$_.Name}},@{n='Groups';e={$groups -join ';'}}
}

Actualización como alternativa a la excelente respuesta de 2010:

Ahora puede usar Get-LocalGroupMember, Get-LocalGroup, Get-LocalUser, etc. para obtener y mapear usuarios y grupos

Ejemplo:

PS C:WINDOWSsystem32> Get-LocalGroupMember -name users

ObjectClass Name                             PrincipalSource 
----------- ----                             --------------- 
User        DESKTOP-R05QDNLsomeUser1        Local           
User        DESKTOP-R05QDNLsomeUser2        MicrosoftAccount
Group       NT AUTHORITYINTERACTIVE         Unknown  

Puede combinar eso con Get-LocalUser. Alias glu también se puede utilizar en su lugar. Existen alias para la mayoría de los nuevos cmndlets.

En caso de que algunos se pregunten (sé que no preguntaste sobre esto), agregar usuarios podría hacerse, por ejemplo, así:

$description = "Netshare user"
$userName = "Test User"
$user = "test.user"
$pwd = "pwd123"

New-LocalUser $user -Password (ConvertTo-SecureString $pwd -AsPlainText -Force) -FullName $userName -Description $description
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *