2011-05-19 20 views
6

Me gustaría filtrar para todos los objetos LDAP donde el CN ​​no es igual a sAMAccountName. Por lo tanto escribí la siguiente consulta, que por desgracia no funciona ninguno, ni parece ser compatibles con RFC:Atributos de comparación LDAP

(!(cn=sAMAccountName))

¿Alguien sabe cómo acheive la funcionalidad deseada?

Saludos Thomas

+0

La pregunta no parece tener sentido cuando se plantea. ¿Realmente desea recuperar cada registro * excepto * ese? ¿Cuál es su requisito real? – EJP

+0

Como dije, quiero recuperar todos los objetos (en mi caso usuarios) donde el Nombre común no es igual a sAMAccountName. Pensé que la consulta sería (cn! = SAMAccountName) que también se puede escribir como (! (Cn = sAMAccountName)) ... Pero al parecer, no soy un experto de LDAP :) – Thomas

+0

No, eso solo devuelve todos los registros donde el El atributo 'cn' no tiene un valor 'sAMAccountName', tomado como un literal. No creo que puedas escribir un filtro para lo que quieres. Solo el LHS se toma como un nombre de atributo. – EJP

Respuesta

0

(!(cn=sAMAccountName)) es "compatible con RFC", debido a que el lado derecho de la afirmación se toma como un valor del atributo cn.

El uso de este filtro resultará en todas las entradas que se devuelven en una respuesta de búsqueda donde está presente valor del atributo cn, y la regla de correspondencia para cn rendimientos false para el valor de mayúsculas y minúsculas samaccountname (suponiendo que la regla de correspondencia cn atributo tiene no ha sido cambiado desde el estándar publicado). Los resultados estarán sujetos a:

  • límite de tiempo del servidor
  • límite de tamaño del servidor
  • controles de acceso
  • servidor

Tal vez nos referimos a utilizar

  • cn=value-of-samaccount-name
0

Si se encuentra en un entorno de Windows, puede usar el Lenguaje de Expresión de PowerShell para esto.

Get-ADUser -Filter * -Server my.domain.name -Properties CN | 
    Where-Object {$_.CN -ne $_.sAMAccountName} 

Esta es una consulta bastante caro, ya que devuelve todos los objetos de usuario único para PowerShell para realizar el procesamiento de, pero funciona.

0

Los filtros LDAP no permiten usar el valor de otro atributo para la comparación de filtros. Tienes que buscar la entrada y comparar ambos valores.