Windows 7: l'indicizzazione della ricerca è bloccata


13

Quando apro Opzioni di indicizzazione, viene visualizzato:

4.317 articoli indicizzati Indicizzazione in corso. I risultati della ricerca potrebbero non essere completi durante questo periodo.

È bloccato a 4.317 però; non sono stati più indicizzati elementi. La cosa peggiore è che SearchIndexer.exe occupa il 100% della CPU (beh, il 50%, ma ho una CPU dual core; occupa tutta la potenza di elaborazione che può). Tuttavia, non sta causando attività sul disco rigido.

Ho provato a fare clic su "Risoluzione dei problemi di ricerca e indicizzazione" nella parte inferiore della finestra Opzioni di indicizzazione, ma non sono riuscito a trovare alcun problema.

Ho anche provato la chiave di registro di riparazione suggerita da diversi siti Web; Cambio HKLM \ SOFTWARE \ Microsoft \ Windows Search SetupCompletedSuccessed su 0 e riavviato il computer, e apparentemente riparato perché è tornato a 1, ma lo stesso problema continua a verificarsi.

Riduce la durata della batteria del mio laptop e lo rende molto caldo in modo che i miei fan siano sempre in funzione. Ho dovuto disabilitare il servizio di ricerca di Windows. Come posso risolvere questo problema? Devo semplicemente riformattare completamente il mio computer?


Aggiornamento:
ho provato a ricostruire un paio di volte. Non c'è nulla di insolito nelle posizioni che devo indicizzare e non ho download in corso o qualcosa del genere. Non vedo alcun motivo per cui si è fermato e ho notato che è troppo tardi per ripristinare un sistema. A questo punto, spero che qualcuno offrirà una risposta segreta che risolva il problema, quindi la generosità.


Un altro aggiornamento:
ho provato a partire di nuovo il servizio, solo per lasciarlo provare ancora una volta. All'inizio sembrava a posto (le opzioni di indicizzazione mostravano che funzionava a velocità ridotta a causa dell'attività dell'utente e il numero di file aumentava). Poco dopo ho controllato e il servizio si era interrotto. Il visualizzatore eventi ha rivelato alcuni errori come questo:

Log Name:      Application
Source:        Application Error
Date:          2/1/2010 7:34:23 PM
Event ID:      1000
Task Category: (100)
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      ricky-win7
Description:
Faulting application name: SearchIndexer.exe, version: 7.0.7600.16385, time stamp: 0x4a5bcdd0
Faulting module name: NLSData0007.dll, version: 6.1.7600.16385, time stamp: 0x4a5bda88
Exception code: 0xc0000005
Fault offset: 0x002141ba
Faulting process id: 0x13a0
Faulting application start time: 0x01caa39f2a70ec02
Faulting application path: C:\Windows\system32\SearchIndexer.exe
Faulting module path: C:\Windows\System32\NLSData0007.dll
Report Id: b4f7a7ae-0f92-11df-87fc-e5d65d8794c2
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Application Error" />
    <EventID Qualifiers="0">1000</EventID>
    <Level>2</Level>
    <Task>100</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2010-02-02T00:34:23.000000000Z" />
    <EventRecordID>10689</EventRecordID>
    <Channel>Application</Channel>
    <Computer>ricky-win7</Computer>
    <Security />
  </System>
  <EventData>
    <Data>SearchIndexer.exe</Data>
    <Data>7.0.7600.16385</Data>
    <Data>4a5bcdd0</Data>
    <Data>NLSData0007.dll</Data>
    <Data>6.1.7600.16385</Data>
    <Data>4a5bda88</Data>
    <Data>c0000005</Data>
    <Data>002141ba</Data>
    <Data>13a0</Data>
    <Data>01caa39f2a70ec02</Data>
    <Data>C:\Windows\system32\SearchIndexer.exe</Data>
    <Data>C:\Windows\System32\NLSData0007.dll</Data>
    <Data>b4f7a7ae-0f92-11df-87fc-e5d65d8794c2</Data>
  </EventData>
</Event>

Se stai riscontrando lo stesso errore e sei arrivato qui da una ricerca di Google, commenta o aggiungi una risposta che dettaglia i tuoi progressi su questo, se presente ...


4
A proposito ... Qualcuno sa un modo per capire cos'è questo magico oggetto 4.317? Mi piacerebbe sapere se esiste un solo file non valido che blocca l'intero sistema.
Ricket,

Puoi aprire il file Windows.edb usando un posto chiamato ESEDatabaseView qui: nirsoft.net/utils/ese_database_view.html
user2924019

Risposte:


8

Penso che potresti essere corretto quando dici che c'è un file danneggiato che lo fa bloccare. Un modo rozzo di provare a identificare il file è quello di andare alla scheda file e disattivare la metà dei tipi di file dall'indicizzazione. Lascialo correre. O si completa o si ferma. Se si interrompe, spegnere di nuovo metà. Se viene completato, sai che il tipo di file errato si trova nell'altra metà. Ciò dovrebbe consentire di identificare il tipo di file errato.

Inoltre, guarda l'elenco dei file indicizzato. I tipi di file hanno provider di ricerca diversi, come HTML, testo normale e così via. C'è qualcuno che sembra fuori posto, che potrebbe essere stato installato da un'applicazione di terze parti?

Un'altra idea è lasciare che la ricerca si blocchi sul 4.317 ° file. Quindi eseguire un prompt dei comandi. genere

CD c:\
DIR /s /TA /O-D >c:\newt.txt

Questo creerà un file chiamato newt.txt che conterrà tutti i file e l'ultima volta che è stato effettuato l'accesso. Accesso, significato letto, non modificato. Dovrai cercare nel file con un editor di file ma cercare gli ultimi file modificati. Se siamo fortunati, il tuo file non valido sarà lì. In bocca al lupo!


Bel suggerimento (la seconda idea). L'indicizzatore non mantiene una sorta di registro dei file indicizzati da qualche parte? Potrebbe farci vedere l'ultimo file indicizzato con successo, e forse ottenere un indizio in questo modo.
mtone

@mtone - È possibile indicizzare una cartella alla volta? Restringerebbe la ricerca.
Nifle

@Nifle: sì, sarebbe anche un'indagine ragionevole per ridurre il numero di cartelle indicizzate. Nel menu Start, digita "indicizzazione" e fai clic sulle opzioni di indicizzazione. Quel pannello elenca le posizioni che stai indicizzando.
Knox,

@Knox +1 per la prima Idea. Stai suggerendo una ricerca di eliminazione [binaria] . E se lo modifichi con la tua comprensione della probabilità di difetto e limiti l'indicizzazione a quelli per primi, allora puoi ottenere molto meglio della velocità O (log2 N) .
ElderDelp

4

Ho trovato queste informazioni nei forum Technet

Sembra essere un bug noto:

  1. Il PC ha due (o più) unità o partizioni

  2. I profili utente e Windows si trovano sulla prima unità o partizione (si supponga che l'unità lettera C :)

  3. La seconda unità o partizione ha più spazio disponibile su disco rispetto alla prima (si supponga che l'unità lettera D :)

  4. Sul PC viene eseguita una sequenza di attività di aggiornamento OSD di ConfigMgr 2007 che utilizza USMT 4 con hardlinking, quindi l'attività Capture File e impostazioni utente / "Capture User State" avrà esito positivo, ma "Ripristina stato utente" / "Ripristina file e impostazioni utente "L'attività fallirà.

Risoluzione

Per risolvere il problema, la variabile OSDStateStorePath deve essere modificata dal suo valore predefinito. Quando si utilizza l'integrazione MDT 2010 / MDT 2010 Update 1, la variabile deve essere ridefinita dopo che è stata impostata dallo script ztiuserstate.wsf nell'attività "Determinare lo stato utente locale o remoto".

Per garantire che lo State Store sia salvato nella stessa unità / partizione in cui è installato Windows e che si trovano i profili utente, la variabile di ambiente SystemDrive può essere utilizzata come parte del percorso che definisce la variabile OSDStateStorePath.

Se l'integrazione di MDT 2010 / MDT 2010 Update 1 non viene utilizzata , l'attività "Imposta variabile sequenza attività" che imposta la variabile OSDStateStorePath deve essere modificata:

  1. Nella console di amministrazione di ConfigMgr 2007, accedere al nodo Computer Management-> Operating System Deployment-> Task Sequences.

  2. Fare clic con il tasto destro sulla sequenza di attività interessata e selezionare "Modifica".

  3. Fai clic sull'attività Set Local State Location. Assicurarsi che l'attività sia Set Task Sequence Variableun'attività che imposta la variabile OSDStateStorePath.

Accanto al Value:campo di testo, modificalo da %_SMSTSUserStatePath% a%SystemDrive%\UserState

  1. Fare clic sul pulsante "OK" o "Applica" per salvare la sequenza di attività. Se l'attività "Imposta posizione stato locale" non esiste, cerca un'attività "Imposta variabile sequenza attività" che imposta la variabile OSDStateStorePath, quindi apporta le modifiche sopra. Se si utilizza l'integrazione MDT 2010 / MDT 2010 Update 1, è necessario aggiungere una nuova attività "Imposta variabile sequenza attività" dopo l'attività "Determina utente locale o remoto" che ridefinisce la variabile OSDStateStorePath:

  2. Nella console di amministrazione di ConfigMgr 2007, accedere al nodo Computer Management-> Operating System Deployment-> Task Sequences.

  3. Fare clic con il tasto destro sulla sequenza di attività interessata e selezionare "Modifica".

  4. Fare clic sull'attività "Determinare lo stato utente locale o remoto", quindi andare su "Aggiungi" -> "Generale" -> "Imposta variabile sequenza attività". Questo dovrebbe creare un'attività "Imposta variabile sequenza attività" dopo l'attività "Determina stato locale o remoto" ma prima dell'attività "Richiedi archivio stato".

  5. Nel nuovo "Imposta compito variabile sequenza attività" appena creato:

    • Accanto alla Name:casella di testo, inserisci:Set Local State Location
    • Accanto alla Task Sequence Variable:casella di testo, inserisci OSDStateStorePath
    • Accanto alla Value:casella di testo, inserisci:%SystemDrive%\StateStore
  6. Fare clic sul pulsante "OK" o "Applica" per salvare la sequenza di attività.

Se al passaggio 3 l'attività "Determina stato utente locale o remoto" non esiste o è stata rinominata, cercare l'attività "Esegui riga di comando" che esegue lo script ztiuserstate.wsf, quindi seguire i passaggi precedenti.


4

Per prima cosa, prova a ricostruire il tuo indice. Inoltre, escludi dall'indicizzazione di qualsiasi cartella con download temporanei / non completati. I file incompiuti sono per definizione corrotti e potrebbero bloccare il processo. I codec video / audio potrebbero anche bloccarsi se l'indicizzazione cerca metadati in essi.

testo alternativo


Puoi approfondire il commento sui metadati? Se qualcosa, da qualche parte sta bloccando questa cosa, forse mi aiuterà a pensarci.
Ricket,

L'indicizzazione tenta di ottenere metadati esaminando i file. Alcuni tipi di file, come i file di filmati AVI richiedono codec (o caricatori di container, spesso indicati anche come codec) per aprire questi file e ottenere risoluzione, lunghezza, ecc. Tale codec potrebbe bloccarsi se un file è danneggiato. Detto questo, non ho riscontrato il problema finora in Windows 7, ma in XP era un problema comune.
mtone

4

La mia ricerca è stata bloccata a causa di un file Outlook.pst errato. Ho eseguito l'utilità di riparazione pst SCANPST.EXEtrovata nella stessa directory dell'eseguibile di Outlook 2007 ( C:\Program Files (x86)\Microsoft Office\Office12sulla mia macchina x64 di Windows 7).

inserisci qui la descrizione dell'immagine


1
Il file si chiama SCANPST.EXE
M. Dudley il

2

Hai verificato che il tuo disco rigido non sta morendo?

Fare clic con il tasto destro del mouse sull'unità, aprire la finestra di dialogo Proprietà, accedere alla scheda Strumenti ed eseguire un controllo degli errori (con scansione del settore errata).


Sì, un'ottima idea per assicurarsi che le basi funzionino correttamente. Controllare anche il registro eventi per errori di sistema.
Knox,

2

Una delle domande poste qui era su come vedere se SearchIndexer.exe è bloccato, in errore o in sospeso o se ci sono ancora progressi. Inoltre, sarebbe bello vedere quale file è attualmente indicizzato.

Ecco un modo per scoprirlo.

Microsoft non offre prontamente strumenti per visualizzarlo, i file di registro creati durante la ricerca, come MSS.log (successivamente copiati e modificati in altri nomi e quindi eliminati) sono file binari e non possono essere letti se non con strumenti speciali.

Un'altra alternativa che ho provato a scoprire se era appeso su un singolo file o no era di cercare il monitor di processo di SysInternal . Ho impostato il filtro come segue:

  • include processo SearchProtocolHost.exe(nota: no SearchIndexer.exe ),
  • include il tipo di evento File System,
  • escludere qualsiasi cosa dalle directory C:\Windowse C:\ProgramData,
  • e / o includi le directory che stai indicizzando,
  • facoltativamente impostare Operazione su ReadFile.
  • fai clic su Applica o OK, quindi fai clic sul pulsante Acquisisci in alto a sinistra.

La vista dell'evento risultante fornisce tutte le ReadFileoperazioni (e alcune altre) attualmente in fase di lettura dal servizio Indice ricerche Microsoft.

Dovrebbe essere un lungo elenco di ReadFileoperazioni e i file attualmente indicizzati si trovano nella colonna Percorso. La colonna Risultato dovrebbe mostrare SUCCESS(in caso contrario, c'è il tuo problema) e la colonna Dettaglio dovrebbe mostrare continuamente un offset diverso (in caso contrario, è in loop e questo è di nuovo un possibile suggerimento per la causa del problema).


1
+1 @Able Il collegamento per Sys | nternals funziona ancora! Questo è un altro che fornirà la suite
SysInternals
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.