USBメモリ活用講座【実践編・USBウィルス感染の自動チェック】

< 最終更新日: 2019-10-02 >

ランチャ起動時に自動チェック

基礎編で紹介したランチャ PStart を起動する時に,USB ウィルスの簡易検知を行うようにしてみましょう. 先に作成した pstart.vbs を次のような内容に書き換えて上書き保存しましょう.

' autorun.infファイルの検査/PStartの起動
Option Explicit
Dim objFS,objShell,strDrv,strCmd,fcresult
Set objShell = WScript.CreateObject("WScript.Shell")
Set objFS = WScript.CreateObject("Scripting.FileSystemObject")
' スクリプトファイルのフルパス名からドライブ名を取得
strDrv = objFS.GetDriveName(WScript.ScriptFullName)
strCmd = "fc.exe " & strDrv & "\Autorun.inf " & strDrv & "\BKUP\Autorun.inf"
fcresult = objShell.Run(strCmd, 2, True)
If fcresult <> 0 Then
  WScript.Echo _
    strDrv & "\Autorun.inf と " _
    & strDrv & "\BKUP\Autorun.inf の内容が異なります." & vbCRLF _
    & "ウィルスチェックを実行するか," _
    & strDrv & "\BKUP\Autorun.inf を更新してください."
Else
  strCmd = strDrv & "\tool\PStart\PStart.exe"
  objShell.Exec strCmd
End If

Portable Start Menu (PSMenu) をお使いの方も psmenu.vbs を同様に書き換えればよいでしょう.

抜くときに自動チェック

USB メモリを抜く前に,USB ウィルスの簡易検知を行い,安全な取り外し処理を行う方法を紹介します.

リムーバブルメディアの安全な取り外しを行うためのフリーソフトウェア UnplugDrive Portable を,まだインストールしていなければ,PStart の便利な設定(4):終了時に USB ドライブを停止するを参考にインストールしてください.

次に,USB ウィルスの簡易検知を行う VB スクリプト chk_arun.vbsを,U:\BKUP\eject.vbs という別名でコピーして,内容を次のように書き換えます (Else 以下を変更します).

' autorun.infファイルの検査(問題がなければUnplugDriveを起動)
Option Explicit
Dim objFS,objShell,strDrv,strCmd,fcresult
Set objShell = WScript.CreateObject("WScript.Shell")
Set objFS = WScript.CreateObject("Scripting.FileSystemObject")
' スクリプトファイルのフルパス名からドライブ名を取得
strDrv = objFS.GetDriveName(WScript.ScriptFullName)
strCmd = "fc.exe " & strDrv & "\Autorun.inf " & strDrv & "\BKUP\Autorun.inf"
fcresult = objShell.Run(strCmd, 2, True)
If fcresult <> 0 Then
  WScript.Echo _
    strDrv & "\Autorun.inf と " _
    & strDrv & "\BKUP\Autorun.inf の内容が異なります." & vbCRLF _
    & "ウィルスチェックを実行するか," _
    & strDrv & "\BKUP\Autorun.inf を更新してください"
Else
  strCmd = strDrv & "\tool\UnplugDrive\unplugdrive.exe /K /X"
  objShell.Exec strCmd
End If

そして,PStart の便利な設定(4):終了時に USB ドライブを停止する を参考に,eject.vbs を PStart のメニューに登録します (UnplugDrive Portable を登録していた方は,削除します). これで PStart の終了→Autorun.inf のチェック→安全な取り外しという一連の手続きを自動化できます. 細かい手順は書きませんので,自分で工夫してみてください.

Portable Start Menu (PSMenu) の場合は,PSMenu を起動したときに登録されているアプリケーションを自動起動する機能はあるものの,終了時に呼び出す機能はないことから,同様のことはできません. PSMenu 自身が持つ終了時に USB メモリを抜くための機能を使うことを推奨します.