Búsqueda de sitios web

Compruebe si el usuario de AD existe en PowerShell


En PowerShell, debemos importar el módulo ActiveDirectory para usar el cmdlet Get-ADUser. Si ya lo ha importado, puede ir a la sección Comprobar si existe un usuario de AD en PowerShell; de lo contrario, sigamos con nosotros paso a paso a continuación.

Instalación del módulo ActiveDirectory

Para importar el módulo ActiveDirectory, primero debemos instalarlo. Entonces, para eso, debemos seguir los siguientes pasos:

Instalar la herramienta de administración remota del servidor (RSAT)

Necesitamos instalarlo si usamos la variante de estación de trabajo de Windows; de lo contrario, obtendremos un error que indicará que no se reconoce Get-AD*. Sin embargo, no es necesario para la variante de servidor porque ya se puede acceder a él allí. La instalación del paquete RSAT varía según la versión de Windows 10.

Variante RSAT para Windows

Necesitamos descargar RSAT manualmente desde aquí e instalarlo si usamos Microsoft Windows 10 precompilado 1809. Pero primero, elija la versión correcta para su sistema operativo y arquitectura (32 bits o 64 bits).

Una vez instalado, siga los pasos a continuación para verificar:

  1. Abra Panel de control.
  2. Vaya a Programas y características.
  3. Presione Activar o desactivar las características de Windows; Puedes verlo en el lado izquierdo de la ventana Programas y características abierta en el paso anterior.
  4. En la ventana Características de Windows, expanda Herramientas de administración remota del servidor -> Herramientas de administración de funciones -> Herramientas de AD DS y AD LDS y asegúrese de que el Módulo de Active Directory para Windows PowerShell está marcado; de forma predeterminada, está seleccionado.

Por otro lado, para Microsoft Windows 10 posterior a la compilación 1809, no necesitamos descargarlo externamente porque están disponibles como funciones opcionales. En su lugar, necesitamos ejecutar el cmdlet Add-WindowsCapability, como se muestra a continuación, para habilitar estas funciones opcionales.

Instale RSAT en Windows 10 posterior a la compilación 1809:

Add-WindowsCapability -Online -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0

Ahora estamos listos para importar el módulo ActiveDirectory para esta versión del sistema operativo Windows. En caso de que no conozca la versión de Windows, presione Windows + tecla R del teclado, escriba winver y presione . Introduzca; Encontrarás la versión del sistema operativo Windows.

RSAT para Windows Server 2008R2 y más reciente

Ejecute los siguientes comandos para usar RSAT-AD-PowerShell en PowerShell.

Habilite la función RSAT-AD-PowerShell en Windows Server:

Import-Module ServerManager
Install-WindowsFeature -Name RSAT-AD-PowerShell

Asegúrese de ejecutar los comandos anteriores en el servidor; de lo contrario, recibirá un error que indicará que el destino de un cmdlet específico no puede ser el sistema operativo basado en cliente de Windows. Puede seguir este enlace para descargar Windows Server.

Es mejor reiniciar la máquina después de instalar RSAT, ya sea que esté instalado en Windows o en la variante de servidor.

Importar módulo ActiveDirectory

Utilice el siguiente comando para importar el módulo de directorio activo en PowerShell.

Importar módulo de Active Directory:

Import-Module ActiveDirectory

Si todo está en su lugar, no obtendrá ningún error al ejecutar el comando anterior. Ahora puede usar los comandos AD en PowerShell. Después de importar el módulo de directorio activo, no olvide unir su PC con Windows a un controlador de dominio e iniciar sesión como una cuenta de usuario AD. Recuerde, puede utilizar el comando systeminfo para encontrar su Dominio.

Comprobar si el usuario de AD existe en PowerShell

Utilice el cmdlet Get-ADUser con el parámetro -Identity en PowerShell.

Utilice Get-ADUser con el parámetro -Identity:

$username = "john"
$user = Get-ADUser -Identity $username
If ($user.SamAccountName -eq $username){
    Write-Host "'$username' exists."
}else{
    Write-Host "'$username' does not exist."
}

PRODUCCIÓN :

john exists

Utilice Get-ADUser con los parámetros -Identity y -Properties para obtener todas las propiedades del AD usuario en PowerShell.

Obtenga todas las propiedades de un ADUser:

Get-ADUser -Identity john -Properties *

PRODUCCIÓN :

DistinguishedName : CN=John Williomson,OU=Writing,DC=Test,DC=local
Enabled           : False
GivenName         : John
Name              : John Williomson
ObjectClass       : user
ObjectGUID        : b98fd0c4-3d5d-4219-8245-b04145d6a0db
SamAccountName    : john
...               ...
...               ...

Utilice el cmdlet Get-ADUser con el parámetro -Filter para obtener varios objetos de usuario en PowerShell.

Utilice Get-ADUser con -Filter:

Get-AdUser -Filter "Name -like '*ser*'"

PRODUCCIÓN :

DistinguishedName : CN=UserOne,OU=SEO,DC=TestOne,DC=local
Enabled           : False
GivenName         : UserOne
Name              : UserOne
ObjectClass       : user
...               ...
...               ...
...               ...
DistinguishedName : CN=User One,CN=Users,DC=TestOne,DC=local
Enabled           : True
GivenName         : UserOne
Name              : User One
ObjectClass       : user
...               ...
...               ...
...               ...

En los ejemplos anteriores de esta sección, utilizamos el cmdlet Get-ADUser para recuperar un objeto de usuario particular o buscar múltiples objetos de usuario. El parámetro -Identity se usó para especificar el usuario AD (usuario de Active Directory) que se desea obtener. Tenga en cuenta que podemos identificar a un usuario a través de diferentes elementos, incluidos Nombre distinguido (DN), ObjectGUID, SamAccountName (SAM, administrador de cuentas de seguridad) y SID (identificador de seguridad). Tenga en cuenta que podemos pasar un objeto de usuario particular a través de una canalización al parámetro -Identity o establecerlo en una variable de objeto de usuario; por ejemplo, -Identidad $yourLocalUserObjectName.

Para obtener múltiples objetos de usuario, utilizamos el parámetro -Filter para todos los objetos de usuario donde el valor de la propiedad Name coincidía con el patrón especificado, que era *ser* (el carácter comodín * indica cualquier número de caracteres). Alternativamente, podemos usar el parámetro -LDAPFilter para recuperar múltiples objetos de usuario.

Si -Filter y -LDAPFilter recuperan múltiples objetos de usuario, ¿cuál es la diferencia entre ellos? El -Filter utiliza el lenguaje de expresión de PowerShell para especificar cadenas de consulta para AD (Active Directory); sin embargo, el -LDAPFilter se utiliza si tiene instalado el Protocolo ligero de acceso a directorios (LDAP). Puede visitar esta página para obtener detalles adicionales.

Utilice el cmdlet Get-ADUser con el bloque try-catch para controlar las excepciones, si se produce alguna. Vea el siguiente ejemplo.

Utilice Get-ADUser con try-catch:

$UserName = "RandomName"
$User = $(try {Get-ADUser $UserName} catch {$null})
If ($User -ne $Null) {
    echo "The specified user exists in the active directory."
} Else {
    echo "The specified user does not exist in the active directory."
}

PRODUCCIÓN :

The specified user does not exist in the active directory.

Tenga en cuenta que puede usar el operador de matriz para crear una matriz de nombres de usuario y luego usar el bucle foreach para iterar sobre esta matriz. Para cada elemento de la matriz, verifique si existe en el directorio activo.

Algunos puntos importantes

A continuación se detallan algunos puntos que puede necesitar al verificar si un usuario AD sale de PowerShell:

No se puede ejecutar Get-ADUser en PowerShell

Es posible que no pueda ejecutar este cmdlet si se produce alguno de los siguientes problemas:

  • El módulo de Active Directory no está cargado. Tenga en cuenta que Get-ADUser es parte del módulo ActiveDirectory, que no está cargado en PowerShell de forma predeterminada. Sería mejor si importara este módulo como Import-Module ActiveDirectory para cargarlo.
  • No está ejecutando PowerShell como administración.
  • Es posible que haya especificado parámetros incorrectos o haya utilizado una sintaxis incorrecta.
ActiveDirectory no se cargó porque no se encontró ningún archivo de módulo válido

Para esto, debe asegurarse de lo siguiente:

  • Ha descargado e instalado la versión correcta de Herramientas de administración remota del servidor (RSAT).
  • Una vez instalado RSAT, habilite el módulo ActiveDirectory importándolo a través del cmdlet Import-Module.
  • Reinicie su máquina y vuelva a ejecutar el comando si aún tiene el mismo problema.
  • Si aún enfrenta este problema, vuelva a verificar la política de ejecución de PowerShell y asegúrese de haber instalado la versión correcta de RSAT.
No se puede encontrar el servidor predeterminado con ADWS ejecutándose

Puede encontrar esto si:

  • Su servicio de servicios web de Active Directory (ADWS) no se está ejecutando en el controlador de dominio. Para comprobarlo, abra services.msc en el controlador de dominio y asegúrese de que el Status sea Running para los servicios web de Active Directory.

  • No estás conectado a una red.

  • Si su configuración de DNS es incorrecta. Confirme que la configuración DNS de su computadora esté configurada correctamente y que el nombre de host del controlador de dominio se resuelva en la dirección IP correcta.

  • Si no ha especificado el controlador de dominio correcto. Esto puede suceder si trabaja con varios controladores de dominio. Vuelva a verificar y confirme que ha utilizado el siguiente comando correctamente:

    Utilice el cmdlet Get-ADUser:

    Get-ADUser -Server <domain controller name or ip address> -Identity <username>
    </username></domain>

Puede utilizar el comando systeminfo en PowerShell para verificar su dominio.

Servicio de servicios web de Active Directory no encontrado en services.msc

Los servicios web de Active Directory (ADWS) no están incluidos en todas las versiones de Windows Server porque no están instalados de forma predeterminada. Si no está instalado en su controlador de dominio o servidor, no podrá ubicarlo en services.msc. Para solucionar esto:

  • Abra el Administrador del servidor buscándolo en la barra de búsqueda de Windows.
  • Agregue la función de herramientas AD DS y AD LDS en el Administrador del servidor. Para hacer esto:

    • Haga clic en Administrar y elija Agregar funciones y características. Luego, haga clic en Siguiente en el asistente abierto hasta que vea la sección Características.
    • Expanda Herramientas de administración del servidor remoto -> Herramientas de administración de roles. Luego, marque la casilla de verificación AD DS and AD LDS Tools y presione Siguiente para instalarlo.
  • Ahora, confirme que ADWS esté disponible en services.msc; Si el problema persiste, reinicie el servidor o el controlador de dominio.
No puedo encontrar la consola del administrador del servidor

Es posible que no pueda encontrar la consola del Administrador del servidor si no está instalada en su sistema operativo Windows Server. Entonces, para este caso, necesita la función AD DS y AD LDS Tools, que incluye la función ADWS. Para hacer esto:

  • Abra PowerShell como administrador y ejecute el comando Install-WindowsFeature RSAT-AD-Tools para instalar la función AD DS y AD LDS Tools.
  • Al ejecutar el comando anterior se instalará la función RSAT que contiene las funciones de las herramientas AD DS y AD LDS.
  • Ahora, abra services.msc y verifique que ADWS se haya instalado correctamente. Si no puede localizar ADWS, reinicie el controlador de dominio o el servidor.

Se trata de cómo comprobar si existen usuarios de AD en PowerShell.

Artículos relacionados