La ricerca di Outlook è una delle funzioni più critiche e delicate della gestione della posta elettronica.
Sia che Outlook sia installato stand alone che in una infrastruttura con il mailserver Exchange, può succedere che, facendo una ricerca delle email, non tutte le email interessate vengano incluse nei risultati della query.
Un tipico esempio lo si può avere quando, facendo una ricerca nelle email, i risultati mostrati sono solo quelli antecedenti ad una certa data.
Strano vero ? Outlook cerca nell’indice del database o nel suo indice locale, e se tali indici sono corrotti il risultato non è mai quello corretto. Per fare un esempio terra terra, è come se in un libro venisse strappato tutto o in parte il sommario.
Nel caso Outlook sia installato come client di posta stand alone, per ricostruire gli indici è sufficiente andare in pannello di controllo e cercare “opzioni di indicizzazione” o voce similare (dipende dalla versione di windows che state usando.
Una volta eseguita la piccola consolle possiamo, dopo avere selezionato “indice di Microsoft Outlook”, accedere alle funzioni avanzate cliccando sull’apposito pulsante.
A questo punto basta cliccare sul pulsante relativo alla ricostruzione dell’indice ed attendere con pazienza che l’operazione vada a termine.
Nel caso Outlook sia installato in una infrastruttura con Microsoft Exchange, dopo avere verificato di riscontrare gli stessi problemi anche accedendo tramite l’interfaccia web di Microsoft Exchange (OWA), possiamo aprire una sessione powershell (in modalità amministratore) e tramite il comando get-mailboxdatabaseCopyStatus possiamo avere conferma che il l’indice relativo al nostro database è corrotto e non funzionante.
Adesso, per procedere con la riparazione dobbiamo conoscere dove il nostro database, e il relativo indice, sono memorizzati. Per fare questo possiamo accedere alla consolle di amministrazione grafica e vedere le proprietà del nostro database oppure, visto che abbiamo già aperto una sessione powershell, possiamo eseguire il comando:
Andiamo quindi nel menù dei servizi di Windows, accessibile da “strumenti di amministrazione” o eseguendo il comando services.msc e arrestiamo i servizi:
- Ricerca di Microsoft Exchange
- Microsoft Exchange Search Host Controller
Sfogliando il disco accediamo al percorso e provvediamo a cancellare la cartella contenente l’indice del database (la cartella è caratterizzata dall’essere identificata dal GUID)
Una volta cancellata la cartella riavviamo i due servizi interrotti in precedenza e, dopo qualche istante, eseguendo il comando powershell get-mailboxdatabaseCopyStatus noteremo che lo stato dell’indice è passato allo stato di crawling (cioè in ricostruzione). Finalmente dopo un tempo dipendente dalla grandezza del nostro archivio (può impiegare anche diverse ore, ma nel frattempo possimao tranquillamente lavorare) il nostro indice sarà tornato ad essere integro e funzionante.
Facile vero ? ….insomma….