ランチャ起動時に自動チェック
基礎編で紹介したランチャ 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 メモリを抜くための機能を使うことを推奨します.