Active Directory se puede consultar desde la línea de comandos mediante PowerShell o comandos de dsquery heredados.
Comandos de PowerShell Active Directory
Listar todos los usuarios:
Get-ADUser -Filter *
Buscar usuario específico:
Get-ADUser -Identity "username"
Buscar usuario por nombre:
Get-ADUser -Filter "Name -like '*John*'"
Enumere todas las computadoras:
Get-ADComputer -Filter *
Listar todos los grupos:
Get-ADGroup -Filter *
Obtener información del dominio:
Get-ADDomain
Obtener controladores de dominio:
Get-ADDomainController -Filter *
Habilitar módulo AD de PowerShell
Si Get-ADUser no funciona, habilite el módulo:
Servidor Windows:
Import-Module ActiveDirectory
Windows 10/11: Instale RSAT (Herramientas de administración remota del servidor) desde Configuración > Aplicaciones > Funciones opcionales.
Luego ejecuta:
Import-Module ActiveDirectory
Comandos DSQUERY heredados
Funciona sin el módulo PowerShell en máquinas unidas a un dominio.
Buscar todos los usuarios:
dsquery user
Buscar usuario por nombre:
dsquery user -name "John*"
Encuentra todas las computadoras:
dsquery computer
Encuentra todos los grupos:
dsquery group
Buscar cuentas deshabilitadas:
dsquery user -disabled
Buscar computadoras inactivas (90 días):
dsquery computer -inactive 12
12 semanas = 90 días aproximadamente.
Obtener información detallada del usuario
PowerShell: muestra todas las propiedades:
Get-ADUser -Identity "username" -Properties *
DSGET (heredado):
dsquery user -name "username" | dsget user -display -email -mobile
Buscar membresías de grupos de usuarios
PowerShell:
Get-ADPrincipalGroupMembership -Identity "username"
DSGET:
dsget user "CN=Username,OU=Users,DC=domain,DC=com" -memberof
Buscar miembros de un grupo
PowerShell:
Get-ADGroupMember -Identity "GroupName"
DSGET:
dsget group "CN=GroupName,OU=Groups,DC=domain,DC=com" -members
Comprobar si el usuario está bloqueado
PowerShell:
Get-ADUser -Identity "username" -Properties LockedOut | Select-Object Name,LockedOut
Desbloquear usuario:
Unlock-ADAccount -Identity "username"
Restablecer contraseña de usuario
Set-ADAccountPassword -Identity "username" -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "NewPassword123!" -Force)
Forzar cambio de contraseña en el próximo inicio de sesión:
Set-ADUser -Identity "username" -ChangePasswordAtLogon $true
Buscar computadora
Por nombre:
Get-ADComputer -Filter "Name -like '*DESKTOP*'"
Por sistema operativo:
Get-ADComputer -Filter "OperatingSystem -like '*Windows 11*'" -Properties OperatingSystem
Exportar resultados a CSV
PowerShell:
Get-ADUser -Filter * -Properties DisplayName,EmailAddress | Export-Csv users.csv -NoTypeInformation
Crea un archivo CSV con los datos del usuario.
Filtros comunes
Usuarios creados en los últimos 30 días:
$date = (Get-Date).AddDays(-30)
Get-ADUser -Filter "Created -gt '$date'" -Properties Created
Los usuarios nunca iniciaron sesión:
Get-ADUser -Filter "LastLogonDate -notlike '*'" -Properties LastLogonDate
Computadoras que no iniciaron sesión durante 90 días:
$date = (Get-Date).AddDays(-90)
Get-ADComputer -Filter "LastLogonDate -lt '$date'" -Properties LastLogonDate
Solución de problemas
"Get-ADUser no reconocido": Importe el módulo ActiveDirectory o instale RSAT.
"No se puede contactar con el servidor": No está en la red del dominio o el controlador de dominio es inalcanzable.
"Acceso denegado": Necesita administrador de dominio o permisos AD adecuados.
DSQUERY no devuelve nada: Verifique la sintaxis, asegúrese de que esté unido al dominio, verifique la conexión de red.
Conclusión
PowerShell (moderno):
Get-ADUser -Filter * | Find users
Get-ADComputer -Filter * | Find computers
Get-ADGroup -Filter * | Find groups
DSQUERY (heredado):
dsquery user | Find users
dsquery computer | Find computers
dsquery group | Find groups
PowerShell es más potente pero requiere el módulo ActiveDirectory. DSQUERY funciona en máquinas unidas a un dominio sin configuración adicional.
Ambos requieren conexión de red de dominio y permisos adecuados.