Las consultas LDAP pueden utilizarse para buscar objetos (computadoras, usuarios, grupos) en la base de datos LDAP del Directorio Activo según determinados criterios. Para realizar una consulta LDAP contra el catálogo AD LDAP, se pueden utilizar varias utilidades (por ejemplo ldapsearch ), los scripts de PowerShell o VBS, la función de Consultas Guardadas en el snap-in Usuarios y Computadoras del Directorio Activo, etc.
En este artículo, echaremos un vistazo a algunos ejemplos útiles de consultas LDAP a AD y cómo ejecutarlas.
¿Cómo se ejecuta la consulta LDAP?
Primero, veamos algunos ejemplos de consultas LDAP. Por ejemplo, se desea realizar una consulta LDAP sencilla para buscar usuarios en AD que tengan activada la opción “El usuario debe cambiar de contraseña en el próximo inicio de sesión”. El código de esta consulta LDAP es el siguiente:
(objectCategory=person)(objectClass=user)(pwdLastSet=0)(!useraccountcontrol:1.2.840.113556.1.4.803:=2)
Intentemos ejecutar esta consulta usando la consola ADUC .
- Abre la consola ADUC y ve a la sección de Consultas guardadas ;
-
Crear una nueva consulta: Nuevo> Consulta;
-
Especifique el nombre de la solicitud y haga clic en el botón Definir consulta ;
-
Selecciona el tipo Custom Search , ve a la pestaña Advanced y copia tu código de consulta LDAP en el campo Enter LDAP query ;
- Haz clic en OK dos veces, selecciona tu nueva consulta en el árbol de Consultas Guardadas y pulsa F5;
-
Una lista de usuarios de AD que coincidan con esta petición LDAP debería aparecer en el panel derecho.
LEER TAMBIÉN Cómo eliminar el usuario de AD usando PowerShell?
También puede ejecutar esta consulta LDAP usando el cmdlet PowerShell Get-ADUser (para buscar usuarios):
Get-ADUser -LDAPFilter $0027(objectCategory=person)(objectClass=user)(pwdLastSet=0)(!useraccountcontrol:1.2.840.113556.1.4.803:=2)$0027
Para buscar computadoras, usa el cmdlet Get-ADComputer:
Get-ADComputer -LDAPFilter $0027your ldap query$0027
Ejemplos de consultas LDAP para Active Directory
Consideremos algunos ejemplos útiles de consultas LDAP que suelen ser utilizadas por los administradores de la AD.
Busque los administradores en los grupos Administradores de dominios, Administradores de empresas:
(objectClass=user)(objectCategory=Person)(adminCount=1)
Enumera a todos los usuarios de AD excepto los bloqueados:
(objectCategory=person)(objectClass=user)(!useraccountcontrol:1.2.840.113556.1.4.803:=2)
Mostrar la lista de cuentas de usuario desactivadas:
(objectCategory=person)(objectClass=user)(useraccountcontrol:1.2.840.113556.1.4.803:=16)
Selecciona los usuarios con la opción “La contraseña nunca caduca” activada:
(objectcategory=user)(userAccountControl:1.2.840.113556.1.4.803:=65536)
Usuarios con valor de correo electrónico vacío:
(objectcategory=persona)(!mail=*)
Enumere a los usuarios con las ventas especificadas en el campo Departamento:
(&(objectCategory=persona)(objectClass=usuario)(departamento=Ventas))
Enumera todas las cuentas de ordenador deshabilitadas en AD:
(&(objectClass=computadora)(userAccountControl:1.2.840.113556.1.4.803:=2))
Mostrar todos los ordenadores con Windows 10:
(objectCategory=computadora)(operatingSystem=Windows 10*)
Todos los controladores de dominio:
(&(objectCategory=computadora)(userAccountControl:1.2.840.113556.1.4.803:=8192))
Todos los servidores de los dominios de los miembros (excepto los DC):
(&(objectCategory=computadora)(operatingSystem=*server*)(!userAccountControl:1.2.840.113556.1.4.803:=8192))
Lista de grupos creados para el período especificado:
(objectCategory=group)(whenCreated>=20190101000000.0Z&<=20191201000000.0Z&)
Enumera todos los grupos de AD vacíos:
(objectCategory=group)(!member=*)
Imprimir todos los grupos con la tecla *CIO* en el nombre del grupo:
(objectCategory=group)(samaccountname=*CIO*)
Encuentra todos los servidores de intercambio del dominio:
(objectCategory=computadora)(servicePrincipalName=exchangeMDB*)(operatingSystem=Windows Server*)
Todas las impresoras a color en un servidor de impresión específico publicado en el AD:
(uncName=*lon-prnt*)(objectCategory=printQueue)(printColor=TRUE)