Consultar usuarios de Active Directory en PowerShell

  1. Instale el módulo de directorio activo
  2. Utilice el cmdlet Get-ADUser para consultar a los usuarios de Active Directory en PowerShell
Consultar 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 Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Artículo relacionado - PowerShell Directory