技術系

VBScriptでNOD32のコマンドラインスキャンをやってみた

NOD32のコマンドラインスキャン

NOD32について

ここ最近はそれほどでも無くなったけど、軽量且つ検出率もそこそこで価格も安いウィルス対策ソフトでNOD32というのがある。
そも最近はWindows PCを立ち上げることすら稀だけど、以前はよくこちらのソフトを利用していた。

コマンドラインからのスキャン

で、ちょっとコマンドラインからスキャンとか出来ると、わざわざウィンドウ開かなくても楽でいいんじゃないかなぁと思ったのでちょっとやってみた。
NOD32のコマンドラインスキャンの場合はソフトのインストールフォルダにある「ecls.exe」というのを使う。(NOD32のバージョンは4.x)
こいつにスキャンしたいファイルなりフォルダなりを引数として渡してあげれば結果が出力される。
コマンドプロンプトからであれば結果がそのまま出力される。

VBScriptでやる場合

コマンドプロンプトからなら楽なんだけど、VBScriptログ出力・結果判定をやる場合は以下のようになると思う。

Set objFileSys = CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
Set objExec = WshShell.Exec("""C:\Program Files\ESET\ESET NOD32 Antivirus\ecls.exe"" ""スキャン対象"" --log-all --log-file=""ログ出力先ファイル名""")

'スキャン終了待ち
Do While objExec.Status = 0
WScript.Sleep 100
Loop

'戻り値の表示
MsgBox objExec.ExitCode

'後始末
Set objExec = Nothing
Set WshShell = Nothing

ちなみにオプションの「--log-all」で正常終了時でもログを出力するようにしている。
オプションの詳細はNOD32のヘルプファイル内を参照、多分「コマンド」で検索すると出てくる。

まとめ

大した記事でも無いんだけど、検索したらあんまり該当する記事が出て来なかったので書いてみた。

-技術系
-