Lista de usuarios de PowerShell | ¿Cómo enumerar usuarios en PowerShell? (Ejemplos)
Definición de lista de usuarios de PowerShell
La lista de usuarios de PowerShell es una forma de recuperar los usuarios de las máquinas Windows locales o los usuarios del directorio activo utilizando cmdlets específicos como Get-LocalUser para los usuarios locales en el sistema operativo Windows y Get-ADUsers para los usuarios del directorio activo para recuperar los detalles del usuario como Nombre distinguido (DN), GUID, Identificador de seguridad (SID), Administrador de cuentas de seguridad (SAM) o nombre y se puede exportar a CSV o archivo de texto.
Sintaxis
La sintaxis de la lista de usuarios de PowerShell se proporciona a continuación:
Sintaxis Get-LocalUser:
Get-LocalUser
[[-Name] <String[]>]
[<CommonParameters>]
Get-LocalUser
[[-SID] <SecurityIdentifier[]>]
[<CommonParameters>]Sintaxis de Get-ADUser:
Get-ADUser
[-AuthType <ADAuthType>]
[-Credential <PSCredential>]
-Filter <String>
[-Properties <String[]>]
[-ResultPageSize <Int32>]
[-ResultSetSize <Int32>]
[-SearchBase <String>]
[-SearchScope <ADSearchScope>]
[-Server <String>]
[<CommonParameters>]
Get-ADUser
[-AuthType <ADAuthType>]
[-Credential <PSCredential>]
[-Identity] <ADUser>
[-Partition <String>]
[-Properties <String[]>]
[-Server <String>]
[<CommonParameters>]Get-ADUser
[-AuthType <ADAuthType>]
[-Credential <PSCredential>]
-LDAPFilter <String>
[-Properties <String[]>]
[-ResultPageSize <Int32>]
[-ResultSetSize <Int32>]
[-SearchBase <String>]
[-SearchScope <ADSearchScope>]
[-Server <String>]
[<CommonParameters>]
Desde la sintaxis de Get-ADUser, puede usar cualquier conjunto de combinaciones y de manera similar para la cuenta Get-LocalUser. No puede usar las propiedades -Filter e -Identity juntas en el cmdlet Get-ADUser y las propiedades -Name y -SID en el cmdlet Get-LocalUser.
También podemos usar la clase WMI o CIMInstance Win32_UserAccount para recuperar los detalles del usuario local de las computadoras locales o remotas. Además, el comando "Net User" en cmd también es útil para recuperar la lista de usuarios locales.
¿Cómo enumerar usuarios en PowerShell?
Existen varios métodos para enumerar los usuarios en PowerShell mediante el uso de comandos nativos como Get-LocalUser, que recupera los detalles de la cuenta del usuario local de la computadora local o las computadoras remotas, o Get-ADUser, que recupera los usuarios del dominio de Active Directory.
El comando Get-LocalUser se introdujo en PowerShell 5.1 y es parte del módulo Microsoft.PowerShell.LocalAccounts. En la versión anterior de PowerShell, para recuperar la lista de usuarios, necesita descargar el módulo de cuentas locales o usar el comando cmd como Net User (que todavía funciona) o la clase de método WMI Win32_UserAccount.
Si está utilizando de forma remota máquinas con versiones anteriores de PowerShell, el comando Get-LocalUser no funcionará allí. Cuando ejecuta los comandos de usuario local en el controlador de dominio, le proporcionará los usuarios del directorio activo porque DC no tiene los usuarios locales.
Ejemplos de lista de usuarios de PowerShell
Los siguientes son los ejemplos que se dan a continuación:
Ejemplo #1: Obtener la lista de cuentas de usuarios locales usando Cmd
Podemos usar el comando cmd “Net User” para recuperar la lista de usuarios del cmd o PowerShell.
net userSalida:
- Para obtener la lista de usuarios locales desde la computadora remota, use Invoke-Command en PowerShell,
Invoke-Command -ComputerName LabMachine2k16 -ScriptBlock { net user}Salida:
El resultado anterior proviene de la computadora remota LabMachine2k16.
Ejemplo #2: Recuperar los usuarios locales usando el método Wmi
Podemos usar el método WMI o la clase de método de instancia CIM Win32_UserAccount para recuperar la lista de usuarios.
gwmi win32_UserAccount | Select Name, FullName, Caption, Domain, SID | ft -AutoSizeSalida:
- Para obtener los detalles del usuario local en la computadora remota, debe agregar -ComputerName
Invoke-Command -ComputerName LabMachine2k16 { gwmi win32_UserAccount} | Select Name, FullName, Caption, Domain, SID | ft -AutoSizeTambién puede utilizar el comando Get-CimInstance en lugar del método gwmi.
Puede exportar el archivo de salida a texto o CSV como se muestra a continuación. En el siguiente ejemplo, el resultado se exportará al archivo UserAccounts.Csv.
gwmi win32_UserAccount | Select Name, FullName, Caption, Domain, SID | Export-Csv C:\Temp\Useracccounts.csv -NoTypeInformationPara exportar al archivo de texto.
gwmi win32_UserAccount | Select Name, FullName, Caption, Domain, SID | Out-File C:\temp\UserAccounts.txtSi desea verificar el usuario específico o la lista de usuarios del dominio,
gwmi win32_UserAccount | where{$_.Domain -like "LabMachine2k16*"} | Select Name, FullName, Caption, Domain, SID | ft -AutoSizeSalida:
- Para recuperar las cuentas locales solo con las propiedades de Contraseña, use el siguiente comando,
gwmi win32_useraccount | where{$_.LocalAccount -eq $true} | Select Name, LocalAccount, PasswordChangeable, PasswordRequiredEjemplo #3: Recuperar la lista de ADUsers
Para obtener la lista de usuarios del dominio, puede utilizar el comando Get-ADUser. Para ejecutar este comando, debe asegurarse de tener RSAT (Herramientas de administración remota del servidor) instalado en la computadora.
Get-ADUser -Filter *El comando anterior obtendrá todos los usuarios del dominio del directorio activo.
- Para exponer todas las propiedades de los usuarios, puede utilizar la -Property
Get-ADUser -Filter * -Properties *- Para filtrar las propiedades específicas,
Get-ADUser -Filter * -Properties * | Select Name, DisplayName, SamAccountName, UserPrincipalNameSalida:
- Para obtener la lista de usuarios que tienen cuentas deshabilitadas y exportarla al archivo CSV, use el siguiente comando.
Get-ADUser -Filter * | where {$_.Enabled -eq $false} | Export-Csv C:\DisabledUserAccounts.csv -NoTypeInformation- Para obtener los detalles de cuentas de usuario específicas,
Get-ADUser -Identity beta -Properties *Debe utilizar la propiedad SamAccountName en el parámetro -Identity.
- Para recuperar los usuarios de la unidad organizativa (OU) específica, utilice el siguiente comando.
Get-ADUser -Filter * -Properties * | where{$_.DistinguishedName -like "*CN=Users*"} | Select Name, DisplayName, userPrincipalName, SAMAccountName- Recuperar la lista de usuarios en el dominio del directorio activo cuya contraseña ha caducado o está configurada para que nunca caduque con propiedades de contraseña en el resultado.
- Recupera las cuentas de usuario de contraseñas caducadas.
Get-ADUser -Filter * -Properties * | where{$_.PasswordExpired -eq $true} | Select Name, SAMAccountName, PasswordExpired, PasswordLastSet- Recupera la contraseña que nunca caduca en las cuentas de usuario.
Get-ADUser -Filter * -Properties * | where{$_.PasswordNeverExpires -eq $true} | Select Name, SAMAccountName, PasswordNeverExpiresConclusión
Como se explica en este artículo, PowerShell utiliza diversos comandos para recuperar la lista de usuarios de la computadora con Windows o del dominio del directorio activo y eso es útil para los administradores en sus tareas de auditoría y limpieza. Puede utilizar el programador de tareas para enviar correos electrónicos a los administradores con la lista de cuentas creadas, vencidas o a punto de caducar mensualmente.






