13

Когда я открываю Параметры индексирования, он говорит:

Индексируется 4 317 объектов. Идет индексация. Результаты поиска могут быть неполными в течение этого времени.

Это застряло на 4317, хотя; больше элементов не было проиндексировано. Хуже всего то, что SearchIndexer.exe занимает 100% ЦП (ну, 50%, но у меня двухъядерный ЦП; он потребляет всю вычислительную мощность, какую только может). Это не вызывает активность жесткого диска, хотя.

Я попытался нажать "Устранение неполадок при поиске и индексации" в нижней части окна "Параметры индексации", но не смог найти никаких проблем.

Я также попытался восстановить раздел реестра, который предлагают несколько веб-сайтов; Я изменяю HKLM\SOFTWARE\Microsoft\Windows Search SetupCompletedSuccessful на 0 и перезагружаю компьютер, и он, по-видимому, восстанавливается, потому что он переходит на 1, но та же проблема продолжает возникать.

Это сокращает время автономной работы моего ноутбука и делает его очень горячим, чтобы мои вентиляторы работали постоянно. Мне пришлось отключить службу поиска Windows. Как я могу это исправить? Нужно ли мне просто переформатировать мой компьютер?


Обновить:
Я пытался восстановить пару раз. Там нет ничего необычного в местах, которые я должен индексировать, и у меня нет ни одной загрузки или что-то подобное. Я не вижу причин, по которым он остановился, и заметил это слишком поздно для восстановления системы. На данный момент, я надеюсь, что кто-то предложит какой-то секретный ответ, который решит проблему, таким образом, щедрость.


Еще одно обновление:
Я попытался запустить службу снова, просто чтобы попробовать еще раз. Сначала казалось, что все в порядке (параметры индексирования показали, что он работает на пониженной скорости из-за активности пользователей, а количество файлов увеличивается). Через некоторое время я проверил, и сервис остановился. Просмотрщик событий выявил некоторые ошибки, подобные этой:

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>

Если у вас возникла та же ошибка и вы пришли сюда из поиска Google, пожалуйста, прокомментируйте или добавьте ответ с подробным описанием вашего прогресса в этом, если таковой имеется ...

6 ответов6

8

Я думаю, что вы можете быть правы, когда говорите, что есть поврежденный файл, который вызывает его зависание. Грубый способ определить файл - перейти на вкладку «Файлы» и отключить половину типов файлов от индексации. Пусть работает. Либо он завершается, либо останавливается. Если это останавливается, выключите половину снова. Если он завершится, вы знаете, что неверный тип файла находится в другой половине. Это должно позволить вам определить неверный тип файла.

Также просмотрите список файлов, который проиндексирован. Типы файлов имеют разные поисковые службы, такие как HTML, простой текст и так далее. Есть ли что-то неуместное, что могло быть установлено каким-либо сторонним приложением?

Другая идея - позволить поиску зависнуть на 4 317-м файле. Затем запустите командную строку. Тип

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

Это создаст файл с именем newt.txt, в котором будут храниться все файлы и время последнего обращения к ним. Доступ, означающий чтение, а не изменение. Вам придется искать файл с помощью файлового редактора, но искать последние несколько файлов, которые были изменены. Если нам повезет, ваш плохой файл будет там. Удачи!

4

Перво-наперво, попробуйте перестроить свой индекс. Также исключите из индексации любые папки с временными / незавершенными загрузками. Незаконченные файлы по определению повреждены и могут повредить процесс. Видео / аудио кодеки также могут зависать, если при индексации в них выполняется поиск метаданных.

альтернативный текст

4

Мой поиск завис из-за плохого файла Outlook.pst. Я запустил утилиту восстановления pst SCANPST.EXE находится в том же каталоге, что и исполняемый файл Outlook 2007 (C:\Program Files (x86)\Microsoft Office\Office12 на моем компьютере с Windows 7 x64).

4

Я нашел эту информацию на форумах Technet

Кажется, это известная ошибка:

  1. ПК имеет два (или несколько) дисков или разделов

  2. Профили пользователей и Windows расположены на первом диске или разделе (предположим, буква диска C:)

  3. Второй диск или раздел имеет больше доступного свободного дискового пространства, чем первый (предположим, буква диска D:)

  4. На ПК запускается последовательность задач обновления OSD ConfigMgr 2007, в которой используется USMT 4 с жесткой связью. После этого задача "Захватить файлы пользователя и настройки"/"Захватить пользовательское состояние" будет выполнена успешно, но "Восстановить пользовательское состояние"/"Восстановить пользовательские файлы и настройки" "задача не удастся.

разрешение

Чтобы решить эту проблему, переменная OSDStateStorePath должна быть изменена со значения по умолчанию. При использовании интеграции MDT 2010/MDT 2010 с обновлением 1 переменная должна быть переопределена после того, как она была установлена скриптом ztiuserstate.wsf в задаче "Определить локальное или удаленное пользовательское состояние".

Чтобы гарантировать сохранение хранилища состояний на том же диске /разделе, где установлена Windows, и расположены профили пользователей, переменную среды SystemDrive можно использовать как часть пути, определяющего переменную OSDStateStorePath.

Если интеграция MDT 2010/MDT 2010 Update 1 не используется, необходимо изменить задачу "Установить переменную последовательности задач", которая задает переменную OSDStateStorePath:

  1. В консоли администратора ConfigMgr 2007 перейдите к узлу Computer Management -> Operating System Deployment -> Task Sequences .

  2. Щелкните правой кнопкой мыши по последовательности задач и выберите "Изменить".

  3. Нажмите на задачу « Set Local State Location . Убедитесь, что задача является задачей « Set Task Sequence Variable задач», которая задает переменную OSDStateStorePath .

Рядом с текстовым полем Value: измените его с %_SMSTSUserStatePath% на %SystemDrive%\UserState

  1. Нажмите кнопку "ОК" или "Применить", чтобы сохранить последовательность задач. Если задача "Задать местоположение локального состояния" не существует, найдите задачу "Задать переменную последовательности задач", которая устанавливает переменную OSDStateStorePath, а затем внесите указанные выше изменения. Если используется интеграция MDT 2010/MDT 2010 с обновлением 1, необходимо добавить новую задачу "Задать переменную последовательности задач" после задачи "Определить локальное или удаленное пользовательское состояние", которая переопределяет переменную OSDStateStorePath:

  2. В консоли администратора ConfigMgr 2007 перейдите к узлу Computer Management -> Operating System Deployment -> Task Sequences .

  3. Щелкните правой кнопкой мыши по последовательности задач и выберите "Изменить".

  4. Нажмите на задачу "Определить локальное или удаленное пользовательское состояние", а затем перейдите к "Добавить" -> "Общие" -> "Установить переменную последовательности задач". Это должно создать задачу "Задать переменную последовательности задач" после задачи "Определить локальное или удаленное пользовательское состояние", но до задачи "Запрос состояния хранилища".

  5. Во вновь созданном "Задании переменной последовательности задач":

    • Рядом с текстовым полем Name: введите в: Set Local State Location
    • Рядом с Task Sequence Variable: введите текстовое поле OSDStateStorePath
    • Рядом с текстовым полем Value: введите в: %SystemDrive%\StateStore
  6. Нажмите кнопку "ОК" или "Применить", чтобы сохранить последовательность задач.

Если на шаге 3 задача "Определить локальное или удаленное пользовательское состояние" не существует или была переименована, найдите задачу "Выполнить из командной строки", которая запускает сценарий ztiuserstate.wsf, а затем выполните описанные выше шаги.

2

Один из вопросов, заданных здесь, был о том, как посмотреть, заблокирован ли SearchIndexer.exe, неисправен или зависает, или все еще идет прогресс. Также было бы неплохо посмотреть, какой файл в данный момент индексируется.

Вот способ узнать.

Microsoft с готовностью не предоставляет вам инструменты для просмотра этого, файлы журнала, созданные во время поиска, такие как MSS.log (позже скопированные и измененные под другими именами, а затем удаленные), являются двоичными файлами и не могут быть прочитаны без специальных инструментов.

Еще одна альтернатива, которую я попытался выяснить, зависла ли она на одном файле или нет, состояла в том, чтобы вызвать SysInternal Process Monitor. Я установил фильтр следующим образом:

  • включить процесс SearchProtocolHost.exe (примечание: не SearchIndexer.exe),
  • включить тип события File System ,
  • исключить что-либо в каталогах C:\Windows и C:\ProgramData ,
  • и / или включить каталоги, которые вы на самом деле индексируете,
  • опционально установите операцию на ReadFile .
  • нажмите Применить или OK, а затем нажмите кнопку Захват в верхнем левом углу.

Результирующее представление событий дает вам все операции ReadFile (и некоторые другие), которые в данный момент читаются службой Microsoft Search Index.

Это должен быть длинный список операций ReadFile а индексируемые в данный момент файлы находятся в столбце Path. Столбец Result должен показывать SUCCESS (если нет, то это ваша проблема), а столбец Detail должен постоянно показывать другое смещение (если нет, то оно зацикливается, и это снова является возможным указанием на причину вашей проблемы).

2

Вы убедились, что ваш жесткий диск не умирает?

Щелкните правой кнопкой мыши диск, откройте диалоговое окно «Свойства», перейдите на вкладку «Инструменты» и выполните проверку на наличие ошибок (при сканировании поврежденного сектора).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .