Windows Defender(リアルタイム保護)が勝手にオンになるのを防ぐ

他のセキュリティソフトを入れている場合、Windows Defender は要らない。しかしデフォでは無効にする手段がない(オフにしてもしばらくしたら勝手にオンになってしまう)。

煩わしいので勝手にオンにならないようにする。

手順

「自動でオンにするやつ」を殺すバッチファイルをつくり、これを「指定間隔で実行する仕組み」に登録する。

手順1. defender_off.bat をつくる

以下のようなバッチファイルをつくる。

schtasks /delete /tn "\Microsoft\Windows\Windows Defender\Windows Defender Scheduled Scan" /f
schtasks /delete /tn "\Microsoft\Windows\Windows Defender\Windows Defender Cache Maintenance" /f
schtasks /delete /tn "\Microsoft\Windows\Windows Defender\Windows Defender Cleanup" /f
schtasks /delete /tn "\Microsoft\Windows\Windows Defender\Windows Defender Verification" /f
exit /b

手順2. タスクスケジューラに登録する

  • control schedtasks を実行(タスクスケジューラを開く)
  • タスクスケジューラ(ローカル) > タスクスケジューラライブラリ と辿る
  • 右ペイン > 右クリックから新しいタスクの作成
    • トリガーは「毎日 xx:yy」に起動にする
    • 操作は「プログラムの開始」として defender_off.bat のフルパスを指定する

xx:yy を何時何分にするかを知るには、Microsoft\Windows\Windows Defender のタスクたちの「前回の実行時刻」列を見る。たとえば 15:30 であれば、15:30 にそのタスクが実行されて「勝手にオンにする」が発動した(と思われる)ので、xx:yy は 15:29 とか 15:20 とかちょっと前にすれば良い。

解説

リアルタイム保護が勝手にオンになるのは、上記のスケジュールタスクが働いているせい。そして上記スケジュールは一度消しても勝手に復活させられる(犯人は不明だが Windows Update 系のタスクとか?)。

つまり以下のようなロジックが働いているので、

  • a) Microsoft\Windows\Windows Defender のタスクが復活する
  • b) タスクたちのトリガー(発動条件)が満たされると、勝手にオンにする処理が発動する

b) に移る前に a) のタスクを消去できればいい。

この消去を行うバッチファイルが手順1. の defender_off.bat で、このバッチファイルを b) の前に呼び出すのが手順2。