===================================== イベントチェックスクリプト EventCheck.js ===================================== ●概要 【ソフト名】 イベントチェックスクリプト EventCheck.js 【登 録 名】 EVCheckx.LZH 【バイト数】 xxx,xxxバイト 【著作権者】 A.Shimada(島田明雄) 【対応環境】 Windows 2000, XP 日本語版 【動作確認】 Windows2000 Pro, WindowsXP Pro 【必要 DLL】 なし 【開発言語】 WSH(Windows Script Host) JScript 【更 新 日】 2004/7/3 【作成方法】 LZHを解凍して下さい。 【種 別】 フリーソフトウェア。改変は自由に行って頂いて結構です。 【サポート】 メールにて 【転載条件】 転載を希望される方は、事前に私宛にメールをください。 ●機能 Windowsイベントログをフィルタしてcsvファイルに出力したり、IE画面(Internet Explorer画面)に色付け表示したりできます。Administratorのパスワードを知って いれば、パラメータ指定でリモートコンピュータのログも参照できます。 フィルタにより日時で絞込み、ログ、種類、ソース、分類、イベント、ユーザー、 コンピュータの各項目のパターンで、監視対象外と監視対象(監視必須)を振り分け できます。監視対象の指定は監視対象外の指定より優先します。例えば情報ログを 監視対象外にするがインストーラの情報だけは監視対象にする、というような振り分 けができます。振り分けた結果で別のcsvファイルに出力したり、IE画面に色付け表 示したりできます。 出力項目は、ログ、種類、日時、ソース、分類、イベント、ユーザー、コンピュー タです。なお、監視対象ログにはイベントメッセージを追加します。 本スクリプトはAdministrator権限のあるユーザで実行する必要があります。user アカウントではsecurityログを参照できません。 ●配布ファイル EventCheck.js スクリプト本体 README.TXT このファイル Sample01Exec.js EventCheck.jsをいくつか連続実行するスクリプト Sample01Filter.txt 情報ログを監視対象外にするフィルタファイル Sample02Exec.js EventCheck.jsを実行するスクリプト Sample02Filter.txt 複雑なフィルタの指定方法を示すフィルタファイル ●インストール ダウンロードしたファイルEVCheckx.LZHをフォルダ付きで解凍して下さい。 EventCheckフォルダ内に配布ファイルが展開されます。なお、ファイル名は8.3形式 を超えていますのでLHAでは正しく解凍できません。また、必ずしも専用フォルダで なくてもかまいませんが、デフォルトでは実行したフォルダ内にログファイルを出力 しますので専用のフォルダとしておくのがよいです。 ●アンインストール EventCheckフォルダを丸ごと削除して下さい。レジストリは変更していません。 ●使用方法 (1)同梱のSamplexxExec.jsを参考に、エディタでEventCheck.jsを起動するスクリ プトを作成します。IE画面表示の有無、フィルタファイル名、csvファイル名など を指定します。 (2)同梱のSamplexxFilter.txtを参考に、エディタでフィルタファイルを作成します。 ログの日時、監視対象外と監視対象の振り分けを指定します。 (3)(1)で作成したスクリプトをダブルクリックする等で実行します。 (4)実行すると、ログの日時を確認するダイアログが出力されますので 確認してOKボタンを押します。 ●EventCheck.jsのパラメータ(例はSamplexxExec.jsをご覧下さい) ○一般的規則 ・英大小文字は区別しません。 ・パラメータの重複チェックはしていません。同じパラメータを指定した場合、 最後のものが有効になります。 ・/C,/U,/Pパラメータはリモートコンピュータのログを参照する場合にのみ指定 して下さい。 ・パラメータは全て省略できます。何もパラメータを指定せずにEventCheck.jsを 実行すると、IE画面は表示されず、1日前からの全てのログがout.csvファイルに 出力されます。ign.csvファイルも出力されますがログは含まれません。 ○パラメータ /D IE画面に全てのログを表示します。省略時はIE画面を表示しません。 /DO IE画面に監視対象ログのみ表示します。省略時はIE画面を表示しません。 /F:フィルタファイル名。省略時は1日前からの全てログが監視対象になります。 /OUT:監視対象ログの追加出力ファイル名。省略時はout.csvに出力します。 キーワードのみ指定してファイル名を省略すると出力しません。 /IGN:監視対象外ログの追加出力ファイル名。省略時はign.csvに出力します。 キーワードのみ指定してファイル名を省略すると出力しません。 /C:コンピュータ名又はIPアドレス。省略時はローカルコンピュータになります。 /U:リモートコンピュータのユーザID /P:リモートコンピュータのパスワード ●フィルタファイルの形式(例はSamplexxFilter.txtをご覧下さい) ○一般的規則 ・#で始まる行はコメントです。無視します。 ・1バイトコードの空白行、及び改行のみは無視します。 ・[]で囲まれた部分は省略できます。 ・1バイトコードの空白、タブは区切り位置に見やすいように入れられます。 ・パラメータは1行で指定して下さい。 ・イベントログのソース、分類、ユーザを除き英大小文字は区別しません。 ○監視時間 (1)btime チェックを開始するログの日時を指定します。 【形式】btime [[[yyyy/]m/d] h:mm] [, 修飾] 修飾 … 下記のようにyyyy/m/d h:mmの指定をさかのぼることができます。 時間数 -48hours -12hour -1h 日数 -7days -3day -1d 月数 -12months -3month -1m 【説明】btimeパラメータを省略すると実行した時刻 -1日になります。 yyyy/m/dを省略すると実行した日になります。 yyyy/m/d h:mmを省略すると実行した時刻になります。 複数指定すると後のものが有効になります。 btimeパラメータの日時<etimeパラメータの日時でなければなりません。 (2)etime チェックを終了するログの日時を指定します。 【形式】etime [[[yyyy/]mm/dd] hh:mm] [, 修飾] 【説明】etimeパラメータを省略すると実行した時刻になります。 その他はbtimeと同じ。 ○コンピュータグループ 続く監視対象外/監視対象イベントログパラメータで参照するコンピュータグルー プを定義します。 【形式】?コンピュータグループ番号 コンピュータ名[, コンピュータ名[, コンピュータ名[, …]]] 【説明】1行で指定して下さい。 コンピュータグループはいくつでも定義できます ○監視対象外イベントログ 監視対象としないイベントログを指定します。 【形式】i ログ, 種類, ソース, 分類, イベント, ユーザー, コンピュータ ログ … ログファイルを、app sys sec で指定します。 種類 … 種類を、情報 警告 エラー 監査成功 監査失敗 information warning error successaudit failureaudit で指定します。 ソース … ソースを文字列で指定します。 分類 … 分類の文字を、文字列 なし null で指定します。数値は未サポート。 イベント … イベントの数字を指定します。 ユーザー … ユーザーを、文字列 N/A null で指定します。文字列は末尾一致で 確認します。 コンピュータ … コンピュータ名又は?コンピュータグループ番号を指定します。 ?コンピュータグループ番号はあらかじめ定義しておく必要があります。 【説明】*を指定すると全て一致します(ワイルドカード)。 iパラメータはいくつでも定義できます。指定された順に一致をチェック します。 ○監視対象(監視必須)イベントログ 監視対象(監視必須)とするイベントログを指定します。例えば情報のログは対象外 にするが、インストールの情報だけはこのパラメータで対象にするようなことができ ます。 【形式】o ログ, 種類, ソース, 分類, イベント, ユーザー, コンピュータ 【説明】iパラメータより優先します。 その他はiパラメータと同じ。 ●注意事項 (1)パラメータエラー、ファイル形式エラー、ファイル出力エラーがあった場合は 中断します。又はWSHのエラーになります。 (2)IE画面を表示するとメモリを10数MB消費しますのでご注意下さい。 (3)出力はイベントビューアと違うことがあります。例えば"ユーザー"はコンピュー タ名付きで出力します。 (4)イベントメッセージに不当な文字があるとWSHのエラーになることがあります。 1例あっただけなので今のところ対策はしていません。 ●スクリプトの仕組み (1)WMI(Windows Management Instrumentation)及びWSH JScriptを使用し、コン ピュータ名、イベントログを取得しています。 (2)ユーザ名、パスワードを指定するためmonikerは使わず、 SWbemLocator.ConnectServerメソッドを使っています。 (3)日時の絞込みはSWbemServices.ExecQueryメソッドのWQLで行います。日時の指定 をyyyymmddHHMMSS.mmmmmmsUUUにすることにより性能が上がりました。部分指定で も検索できますが、読み飛ばしに時間がかかるようです。 ●ヒント (1)パラメータのデフォルトやIE画面の表示色は改変でお好みにできます。 (2)Windows NT 4.0WSでもWMIをインストールすれば使用できました。試す場合はWSH も最新にしましょう。 Windows NT用のWMIはwmicoreで検索できます。下記からダウンロードしてインス トールして下さい。 http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=AFE41F46-E213-4CBF-9C5B-FBF236E0E875 WSHの最新版は下記からダウンロードしてインストールして下さい。 http://www.microsoft.com/japan/msdn/scripting/default.asp ●サポート スクリプトの最新版は本ドキュメント末尾のURL内にあります。 不具合、又は改変のご相談については本ドキュメント末尾の宛先にメール頂ければ できるだけ対処します。 ●免責 本スクリプトの使用により生じた損害に関して作者に責任はないものとします。 ●転載 本スクリプトの転載等は自由ですがメールにて連絡をお願い致します。 ●改訂歴 2004/7/3 ログの絞込み種類で、監査成功、監査失敗を指定できるようにした。 2004/6/19 README.TXTを作成した。 2004/6/6 ログの絞込み、出力にユーザーを追加した。パラメータ変更が必要です。 ログ日時の絞込み、表示にTimeWrittenでなくTimeGeneratedを使用する ようにした。 SWbemDateTimeStr関数の書き換えにより大幅に性能を向上した。 サーバ → コンピュータとした。 /DOパラメータを追加した。 ログ日時絞込みの分指定が無効だったのを有効にした。 グループの検索時に誤って現在のコンピュータ名を使っていたのを、 ログのコンピュータ名を使うように訂正した。 Security特権をLocatorで設定するようにした(NTの場合ConnectServer の前に必要らしい)。 その他いろいろ整形。 2004/5/24 出力ファイルをパラメータで指定できるようにした。 監視対象外ログの指定をパラメータで取り込むようにした。 2003/8/13 ダイアログで処理を中断できるようにした。 2003/7/19 ユーザIDとパスワードをパラメータで指定できるようにした。 2003/7/18 コンピュータ名をパラメータで指定できるようにした。 ===================================== Copyright(C)2003,2004 A.Shimada(島田明雄) URL http://www.mars.dti.ne.jp/~a-smd/ E-Mail akio_dot_shimada@nifty.ne.jp(spam対策) SHIMAPEE(しまぴー) =====================================