2009年2月24日火曜日
EVENTQUERY

久しぶりに投稿してみる。
最後に投稿して以来、仕事ではCとJAVAを併用して、今年に入ってからはPHPをごにょごにょしてたんだけど、今度はAccessになりそう。

で、少し前に居た常駐先で使ってたバッチを、自分の会社でも使おうとしたら、動かなくて…

このテの会社って出勤、退社時間って、自己管理なことが多い。
だけど、毎日Excelにぽちぽち入れてくのって、面倒だし、忘れるんだよね。
ってことで、週末なんかにまとめて入力するんだけど…
そういうときって、PCの起動時間を確認することが多い。

[スタート]→[設定]→[コントロールパネル]→[管理ツール]→[イベントビューア]

システムからeventlogの開始と終了を確認するんだけど、ま、面倒だよね。
なので、バッチを作ってみた。

検索部分だけピックアップすると、こんなイメージ。



CSCRIPT //H:CSCRIPT //S //NOLOGO

EVENTQUERY /FI "ID eq 6005" /FI "Datetime eq %MM%/%DD%/%YYYY%,12:00:00AM-%MM%/%DD%/%YYYY%,11:59:00PM" /L SYSTEM | GREP 6005>> log.txt
EVENTQUERY /FI "ID eq 6006" /FI "Datetime eq %MM%/%DD%/%YYYY%,12:00:00AM-%MM%/%DD%/%YYYY%,11:59:00PM" /L SYSTEM | GREP 6006>> log.txt




ID6005はeventlogの起動、6006は停止のID。
勿論、%YYYY%とかは、変数で設定させるんだけど…

出力結果にはヘッダ部分があるので、log.txtにはGREPで必要な行だけ落としてる。
でもCygwinとか入れないと、GREPは使えないので…

あとはFORとかでまわして、時刻だけ抜き出したりして、整形すればOK。


でも、常駐先の環境ではこれで動いたんだけど、自社に戻ったら、動かない。
CSCRIPT //H:CSCRIPT //S //NOLOGO
してるけど、CSCRIPTで動かせ!とダイアログが表示される。

仕方なく、
CSCRIPT C:\WINDOWS\SYSTEM32\EVENTQUERY.vbs
に書き換え。

なんだろう?



0 コメント | コメントを書く
Template Design: © 2007 Envy Inc.