Windows Searchインデクサーを開始/停止/一時停止する方法
-
06-07-2019 - |
質問
Microsoft Searchからインデクサーをプログラムで開始/停止/一時停止する方法を決定したい。
次のようなプログラムで行われたことを見て、それが可能であることを知っています: http://brandontools.com/files/folders/sidebar_gadgets/entry511.aspx
ただし、MSDNや他の場所でドキュメントを見つけることができません。
「Windowsサーチ」があります;従来のサービス制御方法で制御できるサービス。ただし、このサービスを開始/停止すると、検索自体の可用性も変わります。インデクサーだけを制御したい。
インデクサーと対話する方法を説明するドキュメントがどこにあるかを知っている人はいますか?検索スキルが失敗しました。
解決
インデックス作成部分を単純に無効にする方法はありません。これは、オールオアナッシングサービスです。 WSearchサービスの説明には次のように記載されています:
"ファイル、メール、その他のコンテンツのコンテンツインデックスとプロパティキャッシングを提供します(拡張APIを使用)。サービスは、ファイルおよび電子メール通知に応答して、変更されたコンテンツのインデックスを作成します。サービスが停止または無効になっている場合、エクスプローラーはアイテムの仮想フォルダビューを表示できず、エクスプローラーでの検索はアイテムごとの低速検索にフォールバックします。"
ただし、ドライブ/フォルダーのプロパティを介して制御できる場合があります...エクスプローラーから、個々のドライブに切り替えることができます(ドライブのプロパティを参照してください。インデックスサービスを許可するオプションがあります。 。")、またはフォルダの場合(フォルダプロパティ->詳細設定->"高速検索の場合、インデックスサービスを許可します... '')。
編集 ...少しグーグルで、上記のプロパティを使用できます- System.IO.FileAttributes には、ファイルが記述される NotContentIndexed
というプロパティがあります。オペレーティングシステムのコンテンツインデックスサービスによってインデックスが作成されない。これを個々のフォルダに設定できると想定しています。ドライブレベルで設定した場合(ドライブを再帰的に実行しなくても)これが機能するかどうかはわかりませんが、最終的に達成しようとしていることのすべてに有利なスタートを切ることを願っています。
他のヒント
Microsoft 公式の方法はありません。
次のようなもの:
ServiceController service = new ServiceController(" WSearch");
service.Start();
または
service.Stop();
プログラムでWindows Searchと対話するための優れたチュートリアルを次に示します。 JoyOfCodeの記事。
Windows Search 3。 x SDK は、Windows Search 3または4に対して機能する.NET APIを提供します。
残念ながら、一時停止/再開は公開されません。私が見つけたすべてのインデックスコントロールサンプルは、WMIを使用して検索サービスを停止します。それは明らかにインデックス作成を停止しますが、検索自体が利用できないという犠牲を払います。
これは古いスレッドですが、私はそれに出くわしました。他の誰かも同様です。
AutoITスクリプトを使用してインデックス作成オプションを開き、ダイアログボックスの[一時停止]ボタンをクリックします。
「実行」を開きます。ダイアログ(開始|実行)、タイプ(またはコピー) %SystemRoot%\ system32 \ compmgmt.msc / s 最後のものを展開します