疑わしきを消していく
先日、お客様から「ネットワーク共有フォルダーのファイル検索ができない」というヘルプが入りました。
ファイルは存在するのに、エクスプローラーでファイル名を検索してもヒットしないとのこと。
さらに、別のパソコンからは問題なく検索できるということで、サーバーやネットワークが原因ではなさそうです。
調査を進め、Windows Searchサービスやシステムファイルも確認しましたが、異常は見つかりませんでした。
ところが不思議なことに、PowerShell では正常に検索できます。
そこで検索方法を変えてみたところ、「System.FileName:」を使ったプロパティ検索なら正常にヒットすることが分かりました。
実は、エクスプローラーは検索ボックスに入力された文字を、そのまま検索しているわけではありません。
入力された文字を「ファイル名を検索する」「更新日を検索する」といった検索条件に内部で変換し、その条件を Windows Search へ渡しています。
つまり今回の症状は、検索エンジンそのものではなく、エクスプローラーが入力文字列を検索条件へ変換する部分に問題がある可能性が高い、ということになります。
今回のケースでは、根本原因の特定や解決には至っていません。
それでも「サーバーでもネットワークでも Windows Search でもない」と切り分けられたことで、疑うべき範囲はエクスプローラーの変換機能まで絞り込むことができました。
トラブルシューティングでは、原因を探し当てることよりも、原因ではないものを一つずつ除外していくことのほうが、結果的に近道になります。
犯人を捜すのではなく、容疑者を一人ずつ減らしていくイメージです。
トラブルに直面すると、つい焦って原因を決めつけたくなります。
そんなときこそ、面倒でも一つずつ丁寧に切り分けていく。
地味な作業ですが、こういうときこそ一つずつ切り分けるに限ります。
