Enumerar usuarios y grupos locales mediante PowerShell
Este artículo discutirá cómo consultar usuarios y grupos locales en nuestra máquina con PowerShell.
Enumerar usuarios y grupos locales mediante PowerShell
Cuando hay una desconexión del dominio debido a problemas de red, la mayoría de las veces, nuestras credenciales de dominio no funcionarán debido a la inaccesibilidad y falta de disponibilidad del servidor de autenticación. Por lo tanto, como mejor estándar, debemos tener a mano nuestras credenciales locales, y como administradores, estas credenciales son parte del grupo de administradores locales.
Podemos usar secuencias de comandos de PowerShell para verificar si tenemos credenciales de administrador, especialmente porque también podemos usar estos comandos para procesar varias máquinas de forma masiva. La siguiente sección analizará varias formas de consultar a los usuarios y grupos locales mediante PowerShell.
Obtenga la membresía del grupo local de un usuario con ADSI
Según Microsoft, las interfaces de servicio de Active Directory (ADSI) son interfaces COM integradas que se utilizan para acceder a los servicios de directorio. Por ejemplo, dentro de la biblioteca ADSI se encuentra la clase [ADSI]
que podemos ejecutar en Windows PowerShell para consultar la pertenencia a un grupo de un usuario actual.
Código de ejemplo:
$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 @{Name='UserName';Expression={$_.Name}},@{Name='Group';Expression={$groups -join ';'}}
}
Producción :
UserName Groups
-------- ------
Administrator Administrators
DefaultAccount System Managed Accounts Group
Guest Guests
user Users
Obtenga la membresía del grupo local de un usuario con WMI
WMI es una colección de pautas para simplificar la administración de hardware y software en una red que utiliza computadoras basadas en Windows, y está preinstalado en los sistemas operativos más nuevos de Microsoft. El proveedor proporcionó una interfaz de línea de comandos (CLI) para WMI conocida como WMI Command Line (WMIC) en los sistemas operativos anteriores a Windows 10.
WMIC es compatible con shells y comandos de utilidades existentes en estas versiones anteriores de Windows.
Código de ejemplo:
Get-WmiObject -Class Win32_UserAccount -Filter "LocalAccount='True'"
Producción :
AccountType : 512
Caption : DESKTOP-7GI1260\Administrator
Domain : DESKTOP-7GI1260
SID : S-1-5-21-3848050931-464278446-3624840-500
FullName :
Name : Administrator
AccountType : 512
Caption : DESKTOP-7GI1260\user
Domain : DESKTOP-7GI1260
SID : S-1-5-21-3848050931-464278446-3624840-1003
FullName :
Name : user
El parámetro -Filter
está en su lugar para filtrar solo las cuentas que se crean localmente. Por lo tanto, no se forma mediante la creación de una cuenta predeterminada cuando se ha establecido el dominio.
Obtenga la membresía del grupo local de un usuario con los comandos Get-Local
PowerShell 5.1 ahora puede usar los comandos Get-LocalGroupMember
, Get-LocalGroup
, Get-LocalUser
y otros comandos Get-Local*
en el módulo Microsoft.PowerShell.LocalAccounts
para obtener y asignar usuarios locales y grupos
El uso de estos nuevos comandos lo hace más conciso al escribir nuestro script.
Código de ejemplo:
Get-LocalGroupMember -name users
Producción :
ObjectClass Name PrincipalSource
----------- ---- ---------------
User DESKTOP-7GI1260\kentm MicrosoftAccount
Group NT AUTHORITY\Authenticated Users Unknown
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn