そこで、特定のハードウェア (USB) デバイスが取り外されたときに特定のコマンドを実行し、接続されたときに別のコマンドを実行するタスクをスケジュールしたいと思います。
コマンド:
#Unplug
nircmd monitor off
#Plug in
nircmd monitor on
これにはできるだけ少ないリソースを使用したいと思っています (スクリプトを最小限に抑えるため、たとえば、バックグラウンドで継続的に実行されるスクリプトの設定は避けたいので、タスク スケジューラ自体でこのジョブを実行できる必要があります)。また、回避できる場合は、サードパーティ ソフトウェアのインストールも避けたいと思います。
私が収集できた情報は、ログファイルがあるということだけですC:\Windows\inf\setupapi.dev.logすべての「デバイスのインストール メッセージ」(プラグイン) がログに記録されますが、プラグの抜き取りは追跡されないようです。
このファイルによると、問題のデバイスIDはUSB\VID_1B1C&PID_1B11(LinuxではデバイスIDも1B1C:1B11であることが確認できました。これが私が最初に探していたデバイスがどのデバイスなのかを知った方法です。lsusb は右?)
これにより、タスク スケジューラでセットアップ API に基づいて「プラグイン」タスクを設定できるはずですが、タスク スケジューラに詳しくないため、方法がわかりません (具体的には、どの「イベント ID」を使用すればよいかわかりません)。
デバイスの切断イベントはどこにありますか? また、タスク ビューアーで各イベントに対して必要なコマンドを実行するにはどうすればよいですか?