Risultati contrastanti nelle ricerche multi-mailbox in Exchange 2010

In Exchange 2010, esistono due modi per eseguire ricerche di mail nelle cassette postali :

  1. Tramite Exchange Control Panel (ECP)
  2. Tramite comando di powershell “Search-Mailbox”

Subito una precisazione :  se il comando powershell “Search-Mailbox” (o l’intera sezione di ricerca nel ECP) non dovessero essere disponibili, probabilmente il vostro account non è inserito nel gruppo “Discovery Management” in Active Directory.  E’ necessario far parte di questo gruppo per poter eseguire le ricerche in tutte le cassette postali.

Sia nella console grafica che nel comando powershell è possibile indicare precisamente i termini della ricerca. Per esempio, posso indicare :

  • cassette postali in cui eseguire la ricerca
  • intervallo di tempo
  • cassetta postale in cui far pervenire gli esiti della ricerca
  • livello di logging della ricerca (nessuno, base, avanzato)
  • parole e/o allegati da ricercare nelle mail
  • … altro ancora

Con il comando powershell, posso anche utilizzare il parametro “-DeleteContent” per cancellare automaticamente tutte le mail intercettate dalla ricerca (questo in ECP non è possibile).

In alcuni casi si può notare una discrepanza di risultati eseguendo una ricerca in ECP e in Powershell : per esempio, eseguendo la ricerca in ECP ottengo 100 mail, ed eseguendola in Powershell ne ottengo 360!

Nel 99% dei casi è stato impostato in maniera errata il parametro “-SearchQuery” nel comando “Search-Mailbox” : bisogna essere molto precisi nella sintassi.

Faccio un esempio.

Supponiamo di voler cercare in tutte le cassette postali le mail che contengono l’esatta frase “Io sono andato a casa“.

Se al motore di ricerca di Exchange voglio far trovare un’esatta frase nelle mail (nell’intero corpo), devo indicare quella frase tra apici : Io sono andato a casa.  Le parole non sono case-sensitive.

Impostando la ricerca nella facile console grafica del ECP, la ricerca potrebbe restituire 100 risultati : questo risultato è assolutamente affidabile.

In powershell, il comando per impostare tale ricerca potrebbe essere il seguente :

Get-Mailbox | Search-Mailbox -SearchQuery io sono andato a casa-Logonly -LogLevel Full -TargetMailbox pippo -TargetFolder Search

Questo comando analizza tutte le mail di tutte le mailbox, cerca nelle mail la frase “io sono andato a casa“, registra l’esito della ricerca in modalità Full (cioè indicherà l’esatto numero di mail con quella frase, e creerà anche un file CSV contenente le precise mail rintracciate), e posizionerà l’esito della ricerca nella cassetta postale “Pippo” in una cartella “Search”, dove il proprietario di “Pippo” (o chi ha autorizzazioni di accesso) potrà analizzare la ricerca.

Purtroppo, il comando suddetto probabilmente indicherà un numero di mail diverso da 100.  Come mai?

Il colpevole è il parametro “-SearchQuery” : in molti articoli Technet, è riportato che è sufficiente inserire la frase tra doppi apici per far ricercare ad Exchange la precisa frase.  Questo non è corretto.  Se inseriamo “io sono andato a casa” tra doppi apici, Exchange cercherà tutte le mail dove saranno presenti tutte le parole (c’è un AND sottinteso tra ogni parola e la successiva), ma anche in ordine sparso.  Quindi verranno intercettate pure le mail contenenti, per esempio, la frase “sono andato io a casa” (diversa da quella che effettivamente volevo ricercare).

Il trucco sta nell’inserire l’intero predicato di ricerca “io sono andato a casa” tra due ulteriori apici singoli !!

Quindi la sintassi corretta diventa la seguente :

Get-Mailbox | Search-Mailbox -SearchQuery ‘io sono andato a casa“‘ -Logonly -LogLevel Full -TargetMailbox pippo -TargetFolder Search

Ora l’esito della ricerca dovrebbe veramente restituire lo stesso risualtato (100) del ECP.

E’ importantissimo testare perfettamente la ricerca, soprattutto se la vostra intenzione è quella di cancellare le mail intercettate dalla ricerca (con il parametro “-DeleteContent”).  Un errato parametro “-SearchQuery”, potrebbe portare alla cancellazione non voluta di numerose mail : e a quel punto potreste recuperarle sono con un restore.

Share / Save :

Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.