Comment démarrer / arrêter / mettre en pause l'indexeur de recherche Windows

StackOverflow https://stackoverflow.com/questions/1621736

  •  06-07-2019
  •  | 
  •  

Question

J'aimerais déterminer comment démarrer / arrêter / mettre en pause l'indexeur à partir de Microsoft Search par programmation.

Je sais que cela est possible parce que cela a déjà été fait dans des programmes comme celui-ci: http://brandontools.com/files/folders/sidebar_gadgets/entry511.aspx

Cependant, je ne trouve aucun document sur MSDN ou ailleurs.

Il existe un " Windows Search " service qui peut être contrôlé avec les méthodes de contrôle de service traditionnelles. Cependant, le démarrage / l'arrêt de ce service modifie également la disponibilité de la recherche elle-même. Je veux contrôler uniquement l'indexeur.

Est-ce que quelqu'un sait où trouver des documents décrivant comment interagir avec l'indexeur? Mes compétences de recherche m'ont manqué.

Était-ce utile?

La solution

Il n’existe pas de moyen de simplement désactiver la partie indexation. C'est un service tout ou rien. La description du service WSearch indique:

  

"Permet l'indexation du contenu et la mise en cache des propriétés pour les fichiers, les courriers électroniques et autres contenus (via des API d'extensibilité). Le service répond aux notifications de fichiers et de courrier électronique pour indexer le contenu modifié. Si le service est arrêté ou désactivé, l'explorateur ne pourra pas afficher les vues de dossiers virtuels des éléments et la recherche dans l'explorateur retombera sur la recherche lente, élément par élément. "

Toutefois, vous pourrez peut-être le contrôler via les propriétés du lecteur / dossier ... à partir de l'Explorateur, vous pouvez le remplacer pour un lecteur individuel (voir les propriétés d'un lecteur; l'option "Autoriser le service d'indexation" est proposée). . "), ou pour un dossier (propriétés du dossier - > avancé - > " "pour une recherche rapide, autorisez le service d'indexation ...").

MODIFIER ... un peu de recherche sur Google et les propriétés ci-dessus sont disponibles - si vous consultez la page MSDN pour System.IO.FileAttributes , une propriété NotContentIndexed avec la description Le fichier sera ne pas être indexé par le service d'indexation de contenu du système d'exploitation . Je suppose que vous devriez pouvoir définir ceci sur des dossiers individuels. Je ne sais pas si cela fonctionne s'il est défini au niveau du lecteur (sans exécution récursive), mais j'espère que cela vous donnera une longueur d'avance sur tout ce que vous essayez finalement d'atteindre.

Autres conseils

selon les critères Microsoft , il n'y a pas de moyen officiel de le faire.

Quelque chose comme ça:

ServiceController service = new ServiceController ("WSearch");

service.Start ();

ou

service.Stop ();

Voici un excellent didacticiel sur les interactions programmatiques avec Windows Search: article sur JoyOfCode .

Le Windows Search 3. x SDK fournit une API .NET compatible avec Windows Search 3 ou 4.

Malheureusement, cela n’expose pas de pause / reprise. Tous les exemples de contrôle d'index que j'ai trouvés utilisent WMI pour arrêter le service de recherche. Cela va évidemment arrêter l'indexation, mais au détriment de l'absence de recherche.

C'est un vieux fil, mais je l'ai rencontré. Quelqu'un d'autre pourrait aussi bien.

Utilisez un script AutoIT pour ouvrir les options d'indexation et cliquez sur le bouton Pause dans la boîte de dialogue.

Ouvrez le " Exécuter " Dialogue (Démarrer | Exécuter), tapez (ou copiez) % SystemRoot% \ system32 \ compmgmt.msc / s et dépliez le dernier

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top