WindowsDefenderで定期的にフルスキャンする場合
2016年09月14日 in 技術
みなさんこんにちは!
今日はマイクロソフト謹製のウイルス対策ソフトであるWindowsDefender(WD)についての記事です。ちなみに対象はWindows10です。
WDは元々はアドウェアやスパイウェア対策用のソフトをマイクロソフトが買収してWindowsに付属していたものですが、Windows8以降はウイルス対策ソフトウェアであるMicrosoftSecurityEssentials(MSE)の機能と統合しています。
WindowsDefenderのメイン画面
Windows8以降のWD(めんどくさいので以下WDとします)とWindows7以前のMSE(以下MSE)とで大まかなウイルス対策機能はほとんど一緒なのですが、実はWDになってから大きく削減(?)されたと思われる機能が1点あります。MSEだとスケジュールを組んでスキャンを行うことができて、例えばPCを使っていない夜間にスキャンさせたりして割と便利だったのですが、WDではその設定箇所が見当たりません(;´・ω・)
「おいおい、これって明らかにグレードダウンだよね」とか思わず考えてしまうのですが、まぁ無償で使わせてもらってるわけですし、実際にはコントロールパネルの「セキュリティとメンテナンス」の自動メンテナンス機能が代替えしている様です。ただ、ここからだと細かい調整ができない(クイックスキャンしかできない;)ので、Windowsのタスクスケジューラ機能を使ってフルスキャンする様に設定を行いました。
タスクスケジューラを立ち上げ、ウィンドウ左側のフォルダから「タスクスケジューラライブラリ → Microsoft → Windows → Windows Defender」と開きます。WDのタスクスケジューラには既定で4つのタスクがすでに入っています。これらが自動メンテナンス機能から利用される様です。その中の「Windows Defender Scheduled Scan」が実際にスキャンを行うためのタスクの様なので、これをダブルクリックして編集しちゃいます。さらに「操作」タブに「プログラムの開始」というタスクがあるので、これもダブルクリックして開きます。
そうすると実際に実行されるプログラムのパスや引数の設定箇所があるので、ここの内容を下記の様に編集します。
【プログラム/スクリプト】
[%ProgramFiles%\Windows Defender\MpCmdRun.exe]
↓
["%ProgramFiles%\Windows Defender\MpCmdRun.exe"]
(ダブルクォーテーションで囲わないと、スペース部分をデリミタと認識してしまうため)
【引数の追加】
[Scan -ScheduleJob]
↓
[Scan -ScheduleJob -scan -scantype 2]
(”Scan -ScheduleJob”については最初から記述されているのですが、どこにもこのオプションについての記述がないため、役割は不明です)
さて、通常はこれでOKだと思うのですが、私の場合テストのため単体で実行させてみた(さっきのWindows Defender Scheduled Scanを右クリックして実行をクリック)ところ、思わぬエラーが発生しました。実行させてしばらくすると、前回の実行結果という欄に“0×2″というコードが表示されています。
0×2という謎のエラーコード(?)が・・・
通常は”この操作を正しく終了しました。(0×0)”と表示されるはず。よく観察すると、タスクを実行させても全くCPUの使用率に変化が見られません。また当該タスクの履歴取得を有効にすると分かるのですが、実行と同時にタスクが終了しています(笑)状態は”実行中”になってるのに(謎
この現象についてはあまりインターネットでも情報が見当たらなかったので、もしかすると個別の事象なのかもしれないのですが、結論から言うと権限関係でエラーが発生している様です。タスクの編集画面に「タスクの実行時に使うユーザーアカウント」という項目があるのですが、ここの部分が通常は”SYSTEM”アカウント(システムが使う最上位の管理者権限)を使うようになっています。これを自分のアカウント(もしくは別の管理者アカウント)に変更し、”ユーザーがログオンしているかどうかにかかわらず実行する”を選択してアカウントのパスワードを入力すると、SYSTEMアカウントではなく自分のアカウントで実行するようになり、WDも動作するようです。(自分が常にログインしている場合には、”ユーザーがログオンしているときのみ実行する”でも構わないと思います)
アカウントをSYSTEMから自分の管理者アカウントに変更
なぜSYSTEMアカウントだとうまく動作しないのかについて原理は詳しく詰めていませんが、まぁ動けばいいんじゃないでしょうか(ぉ。上記の0x2というエラーコードが表示される方は試してみるといいかもしれません。