Elementi di base delle query LDAP

Da William Taylor

In questo articolo si parla delle query Lightweight Directory Access Protocol (LDAP) che possono essere utili, sebbene fuorvianti, durante la risoluzione dei problemi di Microsoft® Exchange Server e delle relazioni alla relativa directory. Questo articolo fornisce le informazioni di base sulle query LDAP.

  • Sintassi LDAP di base

  • Situazioni in cui utilizzare le query LDAP

    • Ricerca mediante Utenti e computer di Active Directory

    • Ricerca mediante LDP

    • Ricerca mediante LDIFDE

  • Utilizzo delle query LDAP in ADModify

  • Ulteriori informazioni

Sintassi LDAP di base

  • = (UGUALE A)

    Questo argomento LDAP indica che un determinato attributo deve essere uguale a un determinato valore per poter essere True. Ad esempio, se si desidera trovare tutti gli oggetti il cui primo nome è John, si utilizzerà:

    (givenName=John)

    In tal modo verranno restituiti tutti gli oggetti il cui primo nome è John. Vengono incluse le parentesi per enfatizzare l'inizio e la fine dell'istruzione LDAP.

  • & (AND logico)

    Questa sintassi viene utilizzata se è presente più di una condizione e si desidera che tutte le condizioni della serie siano True. Ad esempio, se si desidera trovare tutte le persone il cui primo nome è John e che abitano a Dallas, si utilizzerà:

    (&(givenName=John)(l=Dallas))

    Notare che ciascun argomento è nel proprio insieme parentetico. L'intera istruzione LDAP deve essere racchiusa in un gruppo parentetico principale. L'operatore & indica che ogni argomento deve essere True affinché il filtro venga applicato all'oggetto in questione.

  • ! (NOT logico)

    Questo operatore viene utilizzato per escludere oggetti che contengono un determinato attributo. Si supponga che si desidera trovare tutti gli oggetti salvo quelli in cui il primo nome è John. Verrà utilizzata la seguente istruzione:

    (!givenName=John)

    Questa istruzione troverà tutti gli oggetti il cui primo nome non è John. Notare che l'operatore

    !

va collocato direttamente all'inizio dell'argomento e all'interno del gruppo parentetico dell'argomento. Dal momento che è presente solamente un argomento nell'istruzione, questo viene racchiuso tra parentesi per l'illustrazione.

  • * (carattere jolly)

    L'operatore carattere jolly viene utilizzato per rappresentare un valore uguale a qualsiasi valore. Una situazione del genere si presenta se è necessario trovare tutti gli oggetti che abbiano un valore come titolo. Si utilizzerà quindi:

    (title=*)

    In tal modo verranno restituiti tutti gli oggetti che hanno l'attributo di titolo contenente un valore. Un altro esempio potrebbe essere se è noto che il primo nome dell'oggetto inizia con Jo. Di conseguenza è possibile utilizzare:

    (givenName=Jo*)

    Questa sintassi verrà applicata a tutti gli oggetti il cui primo nome inizia con Jo.

  • Quelli che seguono sono esempi di sintassi LDAP più avanzata:

    • È necessario un filtro che trovi tutti gli oggetti che si trovano a Dallas o Austin e il cui primo nome è John. In questo caso verrà specificato:

      (&(givenName=John)(|(l=Dallas)(l=Austin)))
    • Nel log dell'applicazione sono presenti 9.548 eventi ed è necessario trovare tutti gli oggetti che provocano la creazione del log. In questo caso, è necessario trovare tutti gli utenti disabilitati (msExchUserAccountControl=2) che non dispongono di un valore di msExchMasterAccountSID. In questo caso verrà specificato:

      (&(msExchUserAccountControl=2)(!msExchMasterAccountSID=*))

    Nota

    L'operatore ! congiuntamente all'operatore carattere jolly cercheranno gli oggetti che non hanno un attributo impostato ad alcun valore.

Situazioni in cui utilizzare le query LDAP

Durante l'utilizzo di Exchange Server, si verificano situazioni in cui vengono utilizzate le stringhe LDAP. Ad esempio, se si imposta un criterio di gestione di destinatari o di caselle di posta o un filtro di elenchi di indirizzi oppure se si esegue una ricerca nel servizio directory Active Directory®, Exchange Server utilizza LDAP. Nelle sezioni successive verranno discussi alcuni dei modi in cui è possibile utilizzare le istruzioni LDAP.

Ricerca mediante Utenti e computer di Active Directory

Il seguente esempio dimostra come eseguire una ricerca mediante Utenti e computer di Active Directory:

  1. Aprire Utenti e computer di Active Directory.

  2. Fare clic con il pulsante destro del mouse sull'oggetto del dominio e selezionare Trova.

  3. Fare clic sull'elenco a discesa al lato di Trova e selezionare Ricerca personalizzata.

  4. Nella schermata successiva, selezionare la scheda Avanzate.

  5. Immettere l'istruzione LDAP appropriata nel campo Immettere query LDAP.

In questo esempio si tenta di trovare tutti gli oggetti che hanno prez come titolo oppure test come parte iniziale del nome. Facendo clic su Trova, viene restituito il risultato appropriato, come mostrato nell'immagine seguente.

Ricerca mediante LDP

Le ricerche possono essere eseguite anche con LDP, incluso nelle utilità di supporto di Microsoft Windows Server™ 2003 e Windows® 2000 Server. Questa utilità consente di eseguire la ricerca non solo nel contenitore del dominio ma anche nel contenitore della Configurazione. È necessario innanzitutto aprire LDP e connettersi a un controller di dominio valido. Quindi è necessario eseguire l'associazione utilizzando le credenziali appropriate. Selezionare Visualizza, quindi selezionare Struttura. Lasciare vuoto il campo DN base e fare clic su OK. Spostarsi nel contenitore in cui si desidera eseguire la ricerca, fare clic con il pulsante destro del mouse sul contenitore e selezionare Cerca.

Viene visualizzata una finestra di dialogo contenente il valore corretto nel campo DN base. Immettere l'istruzione LDAP per cui si desidera filtrare i dati, verrà quindi visualizzato qualcosa di simile a quanto segue.

Se si desidera eseguire la ricerca in tutti i contenitori al livello inferiore di quello attuale, accertarsi di selezionare il pulsante dell'opzione relativa a Sottostruttura. Facendo clic su Esegui verranno restituiti tutti i valori corrispondenti.

Ricerca mediante LDIFDE

In alcuni casi potrebbe essere necessario eseguire una ricerca di un insieme di oggetti che soddisfino un determinato criterio e creare un elenco di questi utenti. LDIFDE è uno strumento da riga di comando che può essere utilizzato per creare tale elenco. Si supponga che si desidera trovare e salvare un elenco di tutti gli utenti il cui campo mailNickName inizi con Jeff. È quindi possibile eseguire il seguente comando.

C:\>ldifde -d "DC=witaylorroot,DC=com" -f c:\output.txt -r "(&(objectClass=user)(mailNickName=jeff*))

In questo esempio, verranno prima trovati tre oggetti e ne verranno esportati tutti gli attributi nel file con estensione txt dei risultati specificato. Se il risultato che si desidera esportare riguarda centinaia di utenti, il file di esportazione potrebbe essere troppo grande. Esiste quindi un'altra opzione. È possibile utilizzare l'opzione

–l

(L minuscola) per specificare gli attributi da esportare. Il nome distintivo verrà esportato sempre ma se non si desiderano altri campi, è possibile aggiungereFakePre-878f101398c3419d9e76a6de0b72c163-9549581e01504f2eb56951fec50185dcFakePre-d624cc3af6314a9b8a215efbfac86032-9484566f38b44416afe0dfe76f6ae614 alla stringa, snellendo in tal modo il risultato. Il seguente comando rappresenta un esempio di questa opzione.

C:\>ldifde -d "DC=witaylorroot,DC=com" -f c:\output.txt -l nothing -r "(&(objectClass=user)(mailNickName=jeff*))

Si prenda in considerazione in questo caso di utilizzare l'esportazione LDIFDE citata in precedenza ma si desidera includere l'attributo homeMDB nei risultati. Sarà quindi necessario utilizzare il seguente comando.

C:\>ldifde -d "DC=witaylorroot,DC=com" -f c:\output.txt -l "homeMDB" -r "(&(objectClass=user)(mailNickName=jeff*))
dn: CN=jeff,OU=55Users,DC=witaylorroot,DC=com changetype: add homeMDB: CN=Private Information Store (WITAYLORNT4EX55),CN=First Storage Group,CN=InformationStore,CN=WITAYLORNT4EX55,CN=Servers,CN=WITAYLORMIXEDSITE,CN=Administrative Groups,CN=WITAYLORORG,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=witaylorroot,DC=com
dn: CN=jeff2,CN=Users,DC=witaylorroot,DC=com changetype: add homeMDB: CN=Private Information Store (WITAYLORNT4EX55),CN=First Storage Group,CN=InformationStore,CN=WITAYLORNT4EX55,CN=Servers,CN=WITAYLORMIXEDSITE,CN=Administrative Groups,CN=WITAYLORORG,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=witaylorroot,DC=com
dn: CN=jeff3,CN=Users,DC=witaylorroot,DC=com changetype: add homeMDB: CN=Private Information Store (WITAYLORNT4EX55),CN=First Storage Group,CN=InformationStore,CN=WITAYLORNT4EX55,CN=Servers,CN=WITAYLORMIXEDSITE,CN=Administrative Groups,CN=WITAYLORORG,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=witaylorroot,DC=com

Se si sta eseguendo un'esportazione senza restrizione degli attributi da esportare, sarà possibile utilizzare l'opzione

–n

per eliminare i valori che verrebbero normalmente inclusi. In tal modo si eviterà di creare un file di esportazione di dimensioni troppo grandi.

Utilizzo delle query LDAP in ADModify

Per ottenere l'utilità ADModify, contattare il Servizio supporto tecnico Microsoft. Per ulteriori informazioni su come contattare il Servizio supporto tecnico Microsoft, visitare il sito Web del Supporto Tecnico Microsoft.

Per ottenere l'utilità ADModify da un sito Web di terzi, accedere al seguente sito Web GotDotNet: ADModify.NET: Workspace Home (in inglese).

ADModify è uno strumento utilizzato quotidianamente dal Servizio supporto tecnico Microsoft. In ambienti Active Directory di grandi dimensioni, non è sempre facile aggiungere all'elenco sul lato destro un'intera unità aziendale (OU, organizational unit) che può comprendere migliaia di utenti, per poi analizzarli per trovare gli utenti che richiedono delle modifiche. Esiste quindi un'alternativa. Nella prima schermata, scegliere Modify Existing User Attributes (Modifica attributi utente esistenti) e fare clic su Next (Avanti). Nella schermata Modify Active Directory Users (Modifica utenti di Active Directory), è presente il pulsante Advanced (Avanzate).

Facendo clic sul pulsante Advanced, viene visualizzata la finestra di dialogo Custom LDAP Filter (Personalizza filtro LDAP). In questa finestra di dialogo è possibile immettere il filtro LDAP che si desidera utilizzare. In questo esempio si desidera elencare solamente i gruppi con la posta abilitata. Il filtro dovrebbe essere simile al seguente.

Successivamente, fare clic su OK. Selezionare l'OU o il dominio in cui si desidera che ADModify esegua la ricerca. Se si desidera eseguire la ricerca nei contenitori di livello inferiore rispetto a quello selezionato, accertarsi di selezionare Traverse Subcontainers when Enumerating Users (Passa contenitore secondario durante numerazione utenti). Fare clic su Add to List (Aggiungi a elenco),quindi su Yes (Sì) dopo l'avviso sulla durata dell'operazione. Nel riquadro di destra verranno visualizzati gli oggetti che soddisfano i criteri specificati.

Da qui, evidenziare gli oggetti che si desidera modificare e continuare con la procedura guidata.

Ulteriori informazioni

Per ulteriori informazioni, consultare i seguenti articoli della Microsoft Knowledge Base: