Consultar usuarios de Active Directory en PowerShell
- Instale el módulo de directorio activo
-
Utilice el cmdlet
Get-ADUser
para consultar a los usuarios de Active Directory en PowerShell
Windows PowerShell facilita la administración de cualquier componente de Active Directory (AD). Podemos manejar cualquier característica de AD, incluida la administración de objetos del directorio activo, como usuarios, computadoras y grupos.
Este artículo discutirá cómo explorar el trabajo de uno de los objetos del directorio activo y usar el módulo de directorio activo de Windows PowerShell para administrar los usuarios del directorio activo.
Instale el módulo de directorio activo
Normalmente, al ejecutar el comando de Windows PowerShell, Install-Module
debería traer el paquete desde un CDN remoto e instalarlo en nuestra máquina.
Aun así, con el Módulo de Active Directory, debemos establecer un paquete de requisitos previos llamado RSAT o Herramientas de administración remota del servidor para que esto tenga éxito.
Para instalar RSAT en su computadora o en el servidor, podemos ejecutar los scripts de PowerShell a continuación.
Instale RSAT para Windows 10 en adelante:
Add-WindowsCapability -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0 -Online
Instale RSAT para Windows Server (múltiples compilaciones desde Windows Server 2008 en adelante):
Install-WindowsFeature -Name "RSAT-AD-PowerShell" -IncludeAllSubFeature
La instalación de la función RSAT en nuestra computadora también instalará el Módulo de Active Directory (Módulo AD) para PowerShell, lo que nos permitirá administrar nuestros Servicios de dominio de Active Directory.
Utilice el cmdlet Get-ADUser
para consultar a los usuarios de Active Directory en PowerShell
Una vez que se instala el módulo de directorio activo, ahora podemos importar el módulo de directorio activo con la siguiente sintaxis. El comando Import-Module
tiene un alias llamado ipmo
, y también podemos usarlo como una gran alternativa a la hora de importar módulos.
ipmo activedirectory
El comando Get-ADUser
es un comando que proporcionará tantas opciones e información como sea posible para encontrar usuarios de dominio. Podemos usar el parámetro Identity
si ya conocemos el NT ID o el nombre de usuario para buscar.
A continuación podemos ver algunos ejemplos de cómo encontrar una cuenta de usuario usando varios identificadores.
Código de ejemplo:
Get-ADUser -Identity jdoe101
Producción :
DistinguishedName : CN=John Doe,OU=IT,DC=pureorg,DC=local
Enabled : False
GivenName : John
Name : John Doe
ObjectClass : user
ObjectGUID : b98fd0c4-3d5d-4239-8245-b04145d6a0db
SamAccountName : jdoe101
SID : S-1-5-21-4117810001-3432493942-696130396-3142
Surname : Doe
UserPrincipalName : jdoe101@pureorg.local
Filtrar cuentas de usuario de AD
Si necesitamos encontrar más de un usuario de dominio o no conocemos un identificador, use un filtro.
Cada parámetro de filtro nos permite realizar declaraciones condicionales que limitan la consulta de búsqueda. En este caso, cuando se cumpla esta condición, el comando Get-ADUser
mostrará las cuentas de usuario que coincidan con esa condición de búsqueda.
El parámetro para filtrar usuarios se denomina parámetro Filtro
. El parámetro Filter
, por su nombre literal, nos permite crear condiciones muy similares a la sintaxis del filtro del cmdlet Where-Object
de Windows PowerShell.
El siguiente ejemplo es un excelente ejemplo del parámetro Filtro
. Este ejemplo mostrará un atributo del directorio activo (givenName
) y lo definirá como parte de la declaración condicional.
El filtro solo permite que los usuarios regresen si tienen un givenName
igual a Albert
.
Código de ejemplo:
Get-ADUser -Filter "givenName -eq 'Albert'"
Producción :
DistinguishedName : CN=AlBernard,OU=Accounting,DC=mylab,DC=local
Enabled : False
GivenName : Albert
Name : Bernard
ObjectClass : user
ObjectGUID : 8ec5ef2a8-1fdb-42ab-9706-b1e6356dd456
SamAccountName : AlBernard
SID : S-1-5-21-4117810001-3432493942-696130396-3163
Surname : Bernard
UserPrincipalName : AlBernard
Buscar usuarios en una unidad organizativa
PowerShell devuelve todos los usuarios del dominio que coinciden con los criterios proporcionando una identidad o un filtro. No se limita a una unidad organizativa o unidad organizativa.
Tendremos que configurar una declaración condicional para que Get-ADUser
filtre por unidad organizativa utilizando el parámetro SearchBase
.
El parámetro SearchBase
nos brinda la funcionalidad para comenzar a buscar una cuenta de usuario en una unidad organizativa específica. El parámetro SearchBase
toma el nombre distinguido (DN) de una Unidad Organizativa.
Por ejemplo, podríamos encontrar todos los usuarios en la unidad organizativa Usuarios
, como se muestra a continuación. Usar el Filtro
de *
significa hacer coincidir todas las cuentas de usuario.
Código de ejemplo:
Get-ADUser -Filter * -SearchBase 'OU=Users,DC=domain,DC=local'
Tal vez solo queramos encontrar cuentas de usuario en una sola unidad organizativa y excluir las unidades organizativas secundarias. En ese caso, podríamos usar los parámetros SearchBase
y SearchScope
.
El parámetro SearchScope
define qué tan profundo nos gustaría buscar en la jerarquía de la unidad organizativa.
Por ejemplo, si quisiéramos encontrar todas las cuentas de usuario en una unidad organizativa y todas las unidades organizativas secundarias, utilizaríamos 1
para el valor Ámbito de búsqueda
. Por otro lado, si quisiéramos buscar en todas las unidades organizativas secundarias y secundarias, usaríamos 2
.
El siguiente ejemplo busca cuentas de usuario dentro de la unidad organizativa Usuarios
y todas las unidades organizativas secundarias debajo de ella.
Código de ejemplo:
Get-ADUser -Filter * -SearchBase 'OU=Users,DC=domain,DC=local' -SearchScope 2
Obtener las propiedades de un usuario
Cuando ejecutamos Get-ADUser
, inmediatamente verá que solo se devuelven algunos atributos. También notará que incluso cuando la salida se canaliza a Select-Object -Property *
, todavía no se devuelven todos los detalles.
Podemos usar el parámetro Propiedad
para obtener los atributos de usuario del directorio activo de Windows PowerShell. Este parámetro acepta una o más características delimitadas por comas para mostrar con la salida.
El fragmento de código de ejemplo siguiente utiliza el comando Get-ADUser
para buscar todas las propiedades de todas las cuentas de usuario con un nombre dado
de Adam
. Desafortunadamente, la salida está recortada, pero verá otros atributos familiares como la dirección de correo electrónico, las propiedades de la contraseña, etc.
Código de ejemplo:
Get-AdUser -Filter "givenName -eq 'Adam'" -Properties *
Producción :
AccountExpirationDate :
accountExpires : 9223372036854775807
AccountLockoutTime :
AccountNotDelegated : False
AllowReversiblePasswordEncryption : False
AuthenticationPolicy : {}
AuthenticationPolicySilo : {}
BadLogonCount : 0
badPasswordTime : 0
badPwdCount : 0
CannotChangePassword : False
CanonicalName : mylab.local/Accounting/ADBertram
<SNIP>
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn