VBSでPCの起動・シャットダウンログを取得する
自分の勤怠を付け忘れた時に自作したものです。
VBSでPCの起動・シャットダウンのイベントログを読み込んで出力してくれるスクリプトを書きました。
VBSは以下のソースをメモ帳に貼り付けて、「***.vbs」と適当な名前をつければOK
後はダブルクリックにて起動して7日以内の起動・シャットダウンログを取得してダイアログに表示してくれます。
VBSのソース
' 取得ログ 日付設定 Const CONVERT_TO_LOCAL_TIME = True Set dtmStartDate = CreateObject("WbemScripting.SWbemDateTime") Set dtmEndDate = CreateObject("WbemScripting.SWbemDateTime") DateToCheck = Date dtmStartDate.SetVarDate DateToCheck - 7, CONVERT_TO_LOCAL_TIME dtmEndDate.SetVarDate DateToCheck + 1, CONVERT_TO_LOCAL_TIME ' イベントログの取得 起動ログとシャットダウンのログを取得 ' 起動 6005 ' 正常シャットダウン 6006 strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colEvents = objWMIService.ExecQuery _ ("Select * from Win32_NTLogEvent Where TimeWritten >= '" _ & dtmStartDate & "' and TimeWritten < '" _ & dtmEndDate & "' AND (EventCode = 6005 OR EventCode = 6006)") ' ログ生成 Dim msg For each objEvent in colEvents ' イベントログ日時 整形 Set tempDate = CreateObject("WbemScripting.SWbemDateTime") tempDate.Value = objEvent.TimeWritten If objEvent.EventCode = 6005 then msg = msg & "起動 " & tempDate.GetVarDate(True) & vbCrLf ElseIf objEvent.EventCode = 6006 then msg = msg & "終了 " & tempDate.GetVarDate(True) & vbCrLf End If Next ' ログ出力 Wscript.Echo msgVBSはWindows環境上だと何もインストールしなくても動くので時々簡単なプログラムを作って遊んでいます。
機会があれば色々覚えると後々役立つこともあります。
«前の記事:サイバー攻撃のリアルタイム地図、米セキュリティー企業が公開WebカメラがないPCのための仮想Webカメラ「ManyCam」:次の記事»
Comments
はじめまして。このメッセージボックスの表示を昇順や降順に変更させることはできますか?よろしくお願いいたします。
17行目に継続行指定がないのでエラーになりました。
すいません、修正致しますした。
継続改行「_」を忘れていました。
ご指摘ありがとうございます。