Windows DefenderはWindowsに標準搭載されているウイルス対策機能であり、企業でも多く採用されています。PowerShellを使えば、Defenderの設定変更やスキャン実行を自動化でき、定期的なウイルスチェックや設定確認が可能になります。本記事では、PowerShellによる操作方法とその自動化について詳しく解説します。
Defenderの設定確認と変更
まずは現在の設定を確認し、必要に応じて変更する方法を紹介します。
リアルタイム保護の状態を確認
Get-MpPreference | Select-Object -Property DisableRealtimeMonitoring
False
ならリアルタイム保護は有効、True
なら無効です。
リアルタイム保護を無効にする
Set-MpPreference -DisableRealtimeMonitoring $true
※セキュリティ上の理由から、長時間の無効化は避けるべきです。
除外フォルダの追加
Add-MpPreference -ExclusionPath "C:\ScanExcludedFolder"
特定のフォルダやファイルをスキャン対象から除外したい場合に使用します。
スキャンの種類と実行コマンド
Defenderにはいくつかのスキャンモードが用意されています。以下のコマンドで任意のスキャンを即時実行できます。
クイックスキャン
Start-MpScan -ScanType QuickScan
フルスキャン
Start-MpScan -ScanType FullScan
カスタムスキャン(特定フォルダのみ)
Start-MpScan -ScanPath "C:\TargetFolder"
対象フォルダを指定してスキャンすることで、時間の節約や特定領域のチェックが可能です。
タスクスケジューラでの自動実行
定期的にスキャンや設定確認を行いたい場合は、タスクスケジューラとPowerShellスクリプトを組み合わせて運用します。
バッチファイルを作成
@echo off
powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\defender-scan.ps1"
スケジュールの登録例
Windowsの「タスク スケジューラ」を開き、以下の設定で登録します:
- トリガー:毎日 12:00
- 操作:作成したバッチファイルを実行
- 条件:「AC電源時のみ実行」など任意に指定
ログ出力による監視
スキャン結果はイベントログにも記録されますが、スクリプトでログ出力することも可能です。
Start-MpScan -ScanType QuickScan
$date = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
Add-Content -Path "C:\Scripts\scan-log.txt" -Value "[$date] クイックスキャンを実行しました"
まとめ
Windows Defenderの操作はPowerShellを使うことで柔軟に制御できます。スキャンや除外設定、スケジュール実行などを自動化することで、管理工数の削減や定期的なセキュリティ対策の実施が実現可能です。特に企業や教育機関など複数端末を管理する環境では、大きな効果を発揮します。