Назад | Перейти на главную страницу

Поиск в индексе Windows на Server 2012 R2 случайно завершается ошибкой

Короче говоря, индекс файлового сервера выйдет из строя случайно.

На файловом сервере включена и проиндексирована служба поиска Windows. К этому серверу подключено много клиентов, возможно, до 100. Клиентские машины Windows (7/10) не смогут выполнить поиск на сервере. Зеленая полоса продолжает движение, результат не отображается.

На сервере это можно решить, просто перезапустив службу поиска Windows (Wsearch). Остановка / перезапуск займет много времени (например, минуту). Когда "остановлен", он выдает ошибку, говоря, что служба не может быть остановлена. Ниже приведена ошибка, возникающая при остановке службы из PowerShell.

Stop-Service : Service 'Windows Search (Wsearch)' cannot be stopped due to the following error: Cannot stop Wsearch
service on computer '------'.
At C:\Users\------\Documents\PSscript\Wsearch-stop.ps1:4 char:54
+ Get-Service -Name $svc_name -ComputerName $pc_name | Stop-Service
+                                                      ~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (System.ServiceProcess.ServiceController:ServiceController) [Stop-Service],
   ServiceCommandException
    + FullyQualifiedErrorId : CouldNotStopService,Microsoft.PowerShell.Commands.StopServiceCommand

Иногда он не выходит из строя, но может выходить из строя много раз в день. Нам не удалось найти виновника, и мы должны перезапустить его по запросу. Файловые операции беспрепятственны.

edit: Интересно, была ли у кого-нибудь такая проблема. Ничего не нашел в сети. Мое текущее решение - попытаться создать сценарий для запроса сетевого индекса с клиентского компьютера и при обнаружении ошибки перезапустить службу.

Посмотрите журнал событий на клиентском компьютере и найдите время, когда поиск по индексации не удался. Вы можете создать специальную запланированную задачу, которая будет запускаться по необходимому событию и запускать сценарий PS. Мой коллега написал для вас образец:

Введите-PSSession -ComputerName "example-server.domain.local"

Set-Service "WSearch" -StartupType manual

Get-Service - имя "WSearch" | Format-List -Property Name, DependentServices |

Out-Null

Stop-Service -Name "WSearch" -Force -Confirm

Start-Service -Name "WSearch" -Confirm

SearchIndexer.exe