Autorisations incorrectes sur les répertoires du service de recherche Windows

Lorsqu'un utilisateur a un problème avec l'indexation de Windows Search, le moteur de recherche de Windows 7, il est amené à utiliser l'assistant de résolution des problèmes. Le résultat de l'analyse, "Autorisations incorrectes sur les répertoires du service de recherche Windows - Non corrigé", laisse perplexe. Il s'agit d'un bug explicité en détails ci-après. La conclusion est qu'on peut ignorer ce message.

Ce problème n'existe pas sur les versions anglophones de Windows 7.

Options d'indexation
Démarrer, Panneau de Configuration, Options d'indexation
Ou via la ligne de recherche dans Démarrer :
WIN, indexation
WIN, options d'indexation

Résoudre les problèmes de recherche et d'indexation
Dans Options d'indexation on peut cliquer sur "Résoudre les problèmes de recherche et d'indexation" :

On peut accéder plus directement à l'Assistant :
WIN, rechercher et résoudre les problèmes avec le service recherche windows

Le problème :
En utilisant l'Assistant de recherche de problèmes, la réponse sur un Windows en langue française est systématiquement :

Problèmes trouvés :
Autorisations incorrectes sur les répertoires du service de recherche Windows ..... Non corrigé

Voici une très jolie illustration des questions que se posent les utilisateurs dès lors que des problèmes avec l'indexation ou le module de recherche les amènent à utiliser cet assistant :
http://forum.pcastuces.com/comment_corriger_cette_erreur-f3s2109.htm

On peut ignorer cette fausse analyse, l'explication a été trouvée par Cool Raoul !
Merci Raoul, tout le mérite de ta trouvaille te revient  !

Résumé

L'outil de détection des anomalies crée dynamiquement des scripts Powershell (conséquence : c'est difficile à adapter).
Le script TS_CheckPermissions.ps1 récupère les permissions d'accès de C:\ProgramData\Microsoft\Search\Data
Pour être exact, le nom du dossier de travail est lu dans le registre :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search
DataDirectory = %ProgramData%\Microsoft\Search\Data\
Jusque-là tout va bien.
Hélas le script extrait le nom du Propriétaire du dossier avec la méthode Owner, laquelle retourne le nom localisé "AUTORITE NT\Système".
C'est ici que se joue le drame, ce résultat est comparé à un nom anglophone "NT AUTHORITY\SYSTEM".
La réponse est donc False, à l'origine de ce message erroné.
Fin du résumé.

Mise en évidence du bug

Comme l'exprime Cool Raoul, on peut remercier une fois de plus Mark Russinovich et son outil Process Monitor.
Commencer par démarrer procmon.exe afin qu'il sniffe ce qui se passe sur la machine.
Lancer l'outil de détection des anomalies....
Arrêter dès que possible l'enregistrement de Process Monitor avec l'icone en forme de loupe (ou CTL+E).
L'icone devient rayée en rouge pour signifier que l'enregistrement est arrêté.
Reste à exploiter le résultat, toujours aussi impressionnant par le nombre d'actions enregistrées.
Tout l'art consiste à simplifier cette sortie et en extraire le significatif.
Ce qu'on cherche (refus d'accès à un répertoire) a plutôt trait aux fichiers, on peut désactiver les boutons à la droite de la barre d'outils.
Ne conserver actif que le bouton [Show Files System Activity] (il apparait comme enfoncé dans la capture ci-dessous).

Dans cette longue liste on peut s'aider de l'outil de recherche (CTL+F). Chercher "Microsoft\Search".
On identifie facilement le processus qui nous intéresse : sdiagnhost.exe
Un clic droit et Include Process Name va éliminer tout le reste, voir la capture ci-dessous.
Le log devient plus facile à lire
On comprend assez vite le principe de création des scripts Powershell.
Voir ci-dessous la création du script TS_CheckPermissions.ps1 (Operation CreateFile) 

Le script TS_CheckPermissions.ps1 a bien sûr retenu l'attention de Cool Raoul.
Et les instructions qui suivent ont révélé le problème :

$dataDirectory = (Get-ItemProperty -path "HKLM:\SOFTWARE\Microsoft\Windows Search").DataDirectory
..............................................................................................
# First check that owner is SYSTEM
$acl = get-acl $dataDirectory
[bool]$ownerOK = ($acl.Owner -eq "NT AUTHORITY\SYSTEM")

Il est facile de tester ces commandes dans une Console Powershell pour constater que  la méthode Owner dans $acl.Owner renvoie une réponse localisée là où il faudrait une réponse anglophone.

Pour tester ces commandes, ouvrir une Console Powershell :
WIN, powershell

Copier ces commandes et les coller dans la console avec un clic droit ou via le menu délivré par l'icone en haut à gauche de la Console :

$dataDirectory = (Get-ItemProperty -path "HKLM:\SOFTWARE\Microsoft\Windows Search").DataDirectory
# First check that owner is SYSTEM
$acl = get-acl $dataDirectory
echo $acl
[bool]$ownerOK = ($acl.Owner -eq "NT AUTHORITY\SYSTEM")
echo $ownerOK

Le résultat est celui-ci :

La méthode Owner utilisée pour extraire le nom du Propriétaire du dossier C:\ProgramData\Microsoft\Search\Data (variable $acl) dans l'instruction

[bool]$ownerOK = ($acl.Owner -eq "NT AUTHORITY\SYSTEM")

a retourné une valeur localisée en langue française "AUTORITE NT\Système".
La comparaison booléenne a donc pour résultat False, raison du message d'erreur.

 

Conclusion

Ne pas s'inquiéter de ce message Autorisations incorrectes sur les répertoires du service de recherche Windows ..... Non corrigé

Contournement
Comme tous ceux qui tombent sur ce problème, Raoul cherchait à résoudre des difficultés avec le module de recherche, lequel ne traitait pas les messages d'Outlook Office. Le contournement trouvé par Raoul a été explicité dans le même thread : créer un nouveau compte.

Antivirus
L'antivirus préinstallé sur les machines peut être en cause. McAfee est souvent cité (voir dans Notes ci-dessous), mais Bit Defender est aussi concerné (1, 2). Contacter le support de Bit Defender ou essayer cette méthode :

 

Notes

http://www.google.fr/search?num=99&q=Autorisation+incorrectes+sur+les+repertoires+du+service+de+recherche+de+windows

C'est là que je suis tombé sur le témoignage de Cool Raoul
Impossibilité de retrouver un document avec l'indexation

Cette discussion montre plusieurs pistes en cas de mauvais fonctionnement du moteur de recherche de W7, en particulier celle des l'antivirus McAfee et Bit Defender :
Autorisations incorrectes sur les répertoires du service de recherche Windows

Déjà citée plus haut, cette discussion est riche en captures d'écran
http://forum.pcastuces.com/comment_corriger_cette_erreur-f3s2109.htm

Windows 7 Search Does Not Work - Only Indexes several items then stops
(Contournement trouvé : désinstaller McAfee)

Bit Defender
http://www.google.fr/search?q=BitDefender+indexation+windows+search
http://google.fr/search?q=site:forum.bitdefender.com+windows+search
http://google.fr/search?q=site:forum.bitdefender.com+windows+search+patch

Une petite recherche en anglais, ça ramène quelque chose ?
http://google.fr/search?num=99&q=Incorrect+permissions+were+detected+on+the+Windows+Search+data+directories
Eh bien oui, car il y a des anglophones qui utilisent Windows en français :
Windows Search - Cannot find files on workstation or in email - Always shows 0 items total
==> "I unfortunately had exactly the same problem with the French version of Windows 7"...
Windows search isn't working for Outlook 2010

Des solutions de rechange
Pour mémoire, si on ne trouve pas de solution au problème d'indexation de Windows Search, on peut se dépanner avec d'autres moteurs de recherche :


Merci d'avoir lu jusqu'ici !
Retour au début
Les restes du site
Les addenda de fspsa
JF (Jean-François)

compteur Free
Publié le 24/12/2010