Programming Field

不審ファイルの一括検出と隔離 - Windowsコマンド実用例

ダウンロードフォルダーなどに混入した実行ファイル(.exe.bat)を一括検出し、隔離フォルダーに自動で移動するバッチ処理の例です。セキュリティチェックや整理目的での活用が可能です。

使用コマンド

  • For - ファイル一覧をループ処理
  • If - 条件分岐でファイルの属性確認
  • Move - 指定フォルダーへの移動処理
  • Echo - 処理ログの出力

バッチファイルの例

@echo off
setlocal
set TARGETDIR=C:\Users\%USERNAME%\Downloads
set QUARANTINE=C:\quarantine

if not exist "%QUARANTINE%" mkdir "%QUARANTINE%"

for %%F in ("%TARGETDIR%\*.exe" "%TARGETDIR%\*.bat") do (
  echo 隔離中: %%~nxF
  move "%%F" "%QUARANTINE%\"
)

応用例

以下のような応用も可能です:

  • 拡張子を追加して .vbs.js も検出対象に
  • %%~tF を使って更新日付で条件分岐
  • findstr と組み合わせてファイル内容に基づく判定

注意点

  • 移動したファイルを元に戻す機能はないため、必要に応じて事前バックアップをする必要があります。
  • ダウンロードフォルダーは日常的にファイルが追加されるため、誤検出に注意してください。(ファイルに応じてダウンロード先を変えるなどの対応も有効です。)
  • スケジューラと組み合わせれば、定期スキャンも可能です(schtasks /create で登録できます)。

関連項目