Eliminar Todas las Versiones de Java: Una Guía de Script de PowerShell

Si necesitas encontrar usuarios del Directorio Activo (AD) en tu dominio, el comando Get-AdUser de Powershell está aquí. Las cuentas de usuario se asignan a empleados, cuentas de servicio y otros recursos. Antes de que te des cuenta, las cuentas de usuario de AD se vuelven difíciles de gestionar.

Usando el cmdlet Get-AdUser PowerShell, puedes obtener usuarios de AD de muchas maneras diferentes. En este artículo, aprenderás algunas de esas formas y cómo utilizar este útil cmdlet.

Gestiona e informa sobre el Directorio Activo, Exchange y Microsoft 365 con ManageEngine ADManager Plus. ¡Descarga la prueba gratuita!

Prerrequisitos

Para utilizar los ejemplos del cmdlet Get-AdUser cubiertos en este artículo, asegúrate de tener lo siguiente:

Encontrar una cuenta de usuario con Identity

El cmdlet Get-AdUser tiene un único propósito. Existe para proporcionar tantas opciones como sea posible para encontrar usuarios de dominio. Si ya conoces el nombre de usuario que deseas buscar, puedes usar el parámetro Identity.

El parámetro Identity te permite proporcionar uno de cuatro identificadores diferentes.

  • distinguishedName (DN)
  • samAccountName
  • GUID
  • SID

A continuación, puedes ver algunos ejemplos de cómo encontrar una cuenta de usuario usando varios identificadores. Observa que devuelve un conjunto de atributos de AD para cada cuenta de usuario.

PS> Get-ADUser -Identity abertram


DistinguishedName : CN=Anne Bertram,OU=Marketing,DC=mylab,DC=local
Enabled           : False
GivenName         : Anne
Name              : Anne Bertram
ObjectClass       : user
ObjectGUID        : b98fd0c4-3d5d-4239-8245-b04145d6a0db
SamAccountName    : abertram
SID               : S-1-5-21-4117810001-3432493942-696130396-3142
Surname           : Bertram
UserPrincipalName : abertram@mylab.local



PS> Get-ADUser -Identity 'S-1-5-21-4117810001-3432493942-696130396-3142'


DistinguishedName : CN=Anne Bertram,OU=Marketing,DC=mylab,DC=local
Enabled           : False
GivenName         : Anne
Name              : Anne Bertram
ObjectClass       : user
ObjectGUID        : b98fd0c4-3d5d-4239-8245-b04145d6a0db
SamAccountName    : abertram
SID               : S-1-5-21-4117810001-3432493942-696130396-3142
Surname           : Bertram
UserPrincipalName : abertram@mylab.local



PS> Get-ADUser -Identity 'CN=Anne Bertram,OU=Marketing,DC=mylab,DC=local'


DistinguishedName : CN=Anne Bertram,OU=Marketing,DC=mylab,DC=local
Enabled           : False
GivenName         : Anne
Name              : Anne Bertram
ObjectClass       : user
ObjectGUID        : b98fd0c4-3d5d-4239-8245-b04145d6a0db
SamAccountName    : abertram
SID               : S-1-5-21-4117810001-3432493942-696130396-3142
Surname           : Bertram
UserPrincipalName : abertram@mylab.local

El atributo más común para usar con el parámetro Identity será el atributo samAccountName.

El Filtro Get-ADUser

Si necesitas encontrar más de un usuario de dominio o no conoces un identificador, usa un filtro. Para hacerlo, tienes a tu disposición un par de parámetros llamados Filter y LDAPFilter.

Cada parámetro de filtro permite al usuario proporcionar una declaración condicional. Cuando se cumple esta condición, Get-AdUser devolverá las cuentas de usuario que coincidan con esa condición.

El parámetro más común para filtrar usuarios es Filter. El parámetro Filter te permite crear condiciones que son similares a la sintaxis del filtro del comando Where-Object de PowerShell.

El parámetro Filter utiliza una sintaxis de lenguaje llamada lenguaje de expresión de PowerShell. Este lenguaje es un poco como lo que usarías con Where-Object pero no exactamente igual. Para obtener un desglose de cómo usar este filtro, revisa este artículo de filtros de Active Directory y LDAP.

A continuación, se muestra un ejemplo de uso del parámetro Filter. Este ejemplo proporciona un atributo AD (givenName en este ejemplo) y establece una condición. El filtro solo permite que los usuarios se devuelvan si tienen un givenName igual a Adam.

PS> Get-AdUser -Filter "givenName -eq 'Adam'"


DistinguishedName : CN=ADBertram,OU=Accounting,DC=mylab,DC=local
Enabled           : False
GivenName         : Adam
Name              : ADBertram
ObjectClass       : user
ObjectGUID        : 8ec5e2a8-1fda-42cb-9406-b1e6356dd457
SamAccountName    : ADBertram
SID               : S-1-5-21-4117810001-3432493942-696130396-3163
Surname           : Bertram
UserPrincipalName : ADBertram

DistinguishedName : CN=Hughes\, Adam,CN=Users,DC=mylab,DC=local
Enabled           : True
GivenName         : Adam
Name              : Hughes, Adam
ObjectClass       : user
ObjectGUID        : 96778db3-3dbd-4b83-9183-db111caa2791
SamAccountName    : ahughes
SID               : S-1-5-21-4117810001-3432493942-696130396-38201
Surname           : Hughes
UserPrincipalName :

La otra opción de filtrado es LDAPFilter, que no se cubrirá en este artículo. Para obtener más información sobre el LDAPFilter y su sintaxis, consulta este artículo sobre filtros de Active Directory y LDAP.

Usando Get-AdUser por OU

Al proporcionar una identidad o filtro, PowerShell devuelve todos los usuarios en el dominio que coinciden con los criterios. No limita por OU. Necesitarás configurar un “filtro” para Get-AdUser para filtrar por OU usando Get-Aduser -SearchBase <OU>.

Usar el parámetro SearchBase te permite comenzar a buscar una cuenta de usuario en un OU específico. El parámetro SearchBase acepta el nombre distinguido (DN) de un OU.

Por ejemplo, podrías encontrar todos los usuarios en el OU MyUsers como se muestra a continuación. Usar el Filter de * significa hacer coincidir todas las cuentas de usuario.

PS> Get-ADUser -Filter * -SearchBase 'OU=MyUsers,DC=domain,DC=local'

Quizás solo quieras encontrar cuentas de usuario en una única OU y excluir cualquier OU secundaria. En ese caso, podrías usar los parámetros SearchBase y SearchScope. El parámetro SearchScope define qué tan profundo en la jerarquía de la OU te gustaría buscar.

Por ejemplo, si quieres encontrar todas las cuentas de usuario en una OU y todas las OUs secundarias, usarías 1 para el valor de SearchScope. Si deseas buscar a través de todas las OUs secundarias y sus sub-OUs, usarías 2.

A continuación, se muestra un ejemplo de búsqueda de cuentas de usuario en la OU MyUsers y todas las OUs secundarias debajo de ella.

PS> Get-ADUser -Filter * -SearchBase 'OU=MyUsers,DC=domain,DC=local' -SearchScope 2

Uso de credenciales alternativas

Por defecto, Get-AdUser se ejecutará bajo el contexto del usuario que ha iniciado sesión. Pero también puedes proporcionar credenciales alternativas usando el parámetro Credential.

Para autenticarte con credenciales alternativas, crea un objeto PSCredential usando Get-Credential como se muestra a continuación:

PS> $cred = Get-Credential
PS> Get-AdUser -Filter * -Credential $cred

Para obtener más información sobre credenciales, consulta Cómo utilizar el cmdlet Get-Credential de PowerShell y todo lo relacionado con las credenciales.

El parámetro PowerShell Get-AdUser Properties

Cuando ejecutas Get-AdUser, verás que solo se devuelven unos pocos atributos. También verás que incluso cuando la salida se canaliza a Select-Object -Property *, no se devuelven todos los atributos.

Para usar PowerShell para obtener atributos de usuario de AD, utiliza el parámetro Property. Este parámetro acepta uno o más atributos delimitados por comas para mostrar en la salida.

A continuación verás un ejemplo de cómo usar Get-AdUser para encontrar todas las propiedades de todas las cuentas de usuario con un givenName de Adam. La salida está recortada pero verás otros atributos familiares como la dirección de correo electrónico, propiedades de contraseña y más aquí.

PS> Get-AdUser -Filter "givenName -eq 'Adam'" -Properties *


AccountExpirationDate                :
accountExpires                       : 9223372036854775807
AccountLockoutTime                   :
AccountNotDelegated                  : False
AllowReversiblePasswordEncryption    : False
AuthenticationPolicy                 : {}
AuthenticationPolicySilo             : {}
BadLogonCount                        : 0
badPasswordTime                      : 0
badPwdCount                          : 0
CannotChangePassword                 : False
CanonicalName                        : mylab.local/Accounting/ADBertram
........

Administra e informa sobre Active Directory, Exchange y Microsoft 365 con ManageEngine ADManager Plus. ¡Descarga la versión de prueba gratuita!

Resumen

El cmdlet Get-ADUser es un comando útil para encontrar cuentas de usuario de AD, generar informes y más. Es una excelente manera de extraer usuarios de AD de un dominio. Para obtener un desglose de Get-AdUser y todos los parámetros, lee el contenido de ayuda ejecutando Get-Help Get-AdUser.

Para muchos otros ejemplos de cómo usar Get-AdUser, consulta la publicación del blog ¡Gran cantidad de scripts de Active Directory: ¡Ven y obténlos!.

Source:
https://adamtheautomator.com/get-aduser/