トリガーのあるサービスを確認するスクリプト。

Windows 7 や Windows Server 2008 R2 以降、サービスの開始・停止に関わる機能として「トリガー」が追加されました。

トリガーに関する詳しいことは、マイクロソフト社が公開している以下の英語資料にたぶん書かれてるんじゃないかと思われます。(私は読んでません。)

Service Trigger Events

 





   




   

 

必ずしも全てのサービスにトリガーが設定されているわけではないので、トリガーのあるサービスだけを一覧化する 3 行のスクリプトを書いてみました。

(管理者権限は特に必要ありません。)

--------------------------------------------------------------------

PowerShell -Command "& {Get-Service | Select-Object Name}" > temp1.txt

for /f "delims=" %i in (temp1.txt) do (sc qtriggerinfo %i) >> temp2.txt

type temp2.txt | findstr "サービス名"

--------------------------------------------------------------------

 

 

一部 PowerShell も使用していますが、全てコマンドプロンプト上で実行します。

(.bat に書く場合は、二箇所ある「%i」を「%%i」に書き換える必要があります。)

 

 

なお、カレントディレクトリにはファイルが2つ作成されます。

お好みで削除してください。

・ temp1.txt (全サービス名の一覧)

・ temp2.txt(全サービスに対するトリガー有無確認結果)