web-dev-qa-db-ja.com

Server 2012R2でのWindowsインデックス検索がランダムに失敗する

簡単に言うと、ファイルサーバーのインデックスはランダムに失敗します。

ファイルサーバーでは、Windows Searchサービスが有効になっており、インデックスが作成されています。このサーバーに接続されているクライアントは多数あり、場合によっては最大100個です。クライアントのWindows(7/10)マシンは、サーバーの検索に失敗します。緑のバーは動き続け、結果は表示されません。

サーバーでは、Windows Search(Wsearch)サービスを再起動するだけで解決できます。停止/再起動には長い時間(1分程度)がかかります。 「停止」すると、サービスを停止できないというエラーがスローされます。以下は、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

失敗しないこともありますが、1日に何度も失敗することもあります。原因を特定できなかったため、リクエストに応じて再起動する必要があります。ファイル操作は妨げられません。

編集:誰かがそのような問題を抱えていたのだろうか。ネット上で何も見つかりませんでした。私の現在の解決策は、クライアントコンピューターからネットワークインデックスを照会するスクリプトを作成し、エラーが見つかった場合はサービスを再起動することです。

2
Alf

クライアントマシンのイベントログを見て、インデックス検索が失敗した時刻を見つけます。必要なイベントによってトリガーされ、PSスクリプトを実行する特別なスケジュールされたタスクを作成できます。私の同僚はあなたのためにサンプルを書きました:

Enter-PSSession -ComputerName "example-server.domain.local"

Set-Service "WSearch" -StartupTypeマニュアル

Get-Service -Name "WSearch" | Format-List -Property Name、DependentServices |

アウトヌル

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

Start-Service -Name "WSearch" -Confirm

SearchIndexer.exe

2
Stuka