Come avviare / arrestare / mettere in pausa l'indicizzatore di ricerca di Windows

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

  •  06-07-2019
  •  | 
  •  

Domanda

Vorrei determinare come avviare / arrestare / mettere in pausa a livello di codice l'indicizzatore da Ricerca Microsoft.

So che è possibile perché l'ho visto fatto in programmi come questo: http://brandontools.com/files/folders/sidebar_gadgets/entry511.aspx

Tuttavia, non riesco a trovare alcun documento su MSDN o da nessuna parte.

Esiste un " Ricerca di Windows " servizio che può essere controllato con i metodi tradizionali di controllo del servizio. Tuttavia, l'avvio / arresto di questo servizio modifica anche la disponibilità della ricerca stessa. Voglio controllare solo l'indicizzatore.

Qualcuno sa dove si possono trovare documenti che descrivono come interagire con l'indicizzatore? Le mie capacità di ricerca mi hanno fallito.

È stato utile?

Soluzione

Non esiste un modo per disabilitare semplicemente la parte di indicizzazione. È un servizio tutto o niente. La descrizione del servizio WSearch indica:

  

" Fornisce l'indicizzazione del contenuto e la memorizzazione nella cache delle proprietà di file, e-mail e altri contenuti (tramite API di estensibilità). Il servizio risponde alle notifiche di file ed e-mail per indicizzare il contenuto modificato. Se il servizio viene interrotto o disabilitato, Explorer non sarà in grado di visualizzare le viste delle cartelle virtuali degli elementi e la ricerca in Explorer tornerà alla ricerca lenta articolo per articolo. & Quot;

Tuttavia, potresti essere in grado di controllarlo tramite le proprietà dell'unità / cartella ... da Explorer, puoi cambiarlo per una singola unità (vedi le proprietà di un'unità; c'è un'opzione " consenti il ??servizio di indicizzazione .. . ") o per una cartella (proprietà della cartella - > advanced - > " Per una ricerca veloce, consenti il ??servizio di indicizzazione ... ").

MODIFICA ... un po 'di google e le proprietà di cui sopra sono disponibili - se si guarda la pagina MSDN per System.IO.FileAttributes , c'è una proprietà NotContentIndexed con la descrizione Il file sarà non essere indicizzato dal servizio di indicizzazione del contenuto del sistema operativo . Suppongo che dovresti essere in grado di impostarlo su singole cartelle. Non so se questo funziona se impostato a livello di unità (senza una corsa ricorsiva attraverso l'unità), ma spero che ti darà un vantaggio su tutto ciò che alla fine stai cercando di ottenere.

Altri suggerimenti

Secondo il Microsoft non esiste un modo ufficiale per farlo.

Qualcosa del genere:

ServiceController service = new ServiceController (" WSearch ");

service.Start ();

o

service.Stop ();

Ecco un ottimo tutorial sull'interazione programmatica con la ricerca di Windows: articolo su JoyOfCode .

Windows Search 3. x SDK fornisce un'API .NET che funziona con Windows Search 3 o 4.

Sfortunatamente, non espone la pausa / ripresa. Tutti i campioni di controllo dell'indice che ho trovato utilizzano WMI per interrompere il servizio di ricerca. Ciò interromperà l'indicizzazione, ovviamente, ma a spese della ricerca stessa non sarà disponibile.

È un vecchio thread, ma mi sono imbattuto in esso. Qualcun altro potrebbe anche.

Utilizza uno script AutoIT per aprire le Opzioni di indicizzazione e fai clic sul pulsante Pausa nella finestra di dialogo.

Apri " Esegui " Finestra di dialogo (Start | Esegui), digitare (o copiare) % SystemRoot% \ system32 \ compmgmt.msc / s e dispiega l'ultimo

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top