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 :
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 !
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é.
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.
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 :
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 :
Everything
Search Engine
Très efficace pour la recherche des noms de fichiers. Il réalise une
mini-indexation qui prend moins d'une minute. Suite à quoi ses résultats de
recherches sont immédiats. Très impressionnant. Sa portabilité encourage à
l'avoir toujours avec soi sur une clé USB.
SuperFinder
Comme Everything ne cherche que les noms de fichiers, on peut compléter avec
ce moteur de recherche qui sait rechercher DANS les fichiers. Il ne fait pas
d'indexation, d'où une certaine lenteur.
Copernic
Moteur de recherche à indexation, redoutable d'efficacité. On retrouve TOUT.
Publié le
24/12/2010