ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.4152455 PC off時のログ記録
質問者:uran-1007 pcの電源を断した時の日時を取得したいのですが、

今、バッチファイルを作成しそこに、dataとtime、shutdownコマンドを記述しまして日時は取得できます。win2000では、shutdownが無いみたいで、電源を切れません。
ただ、バッチファイルをダブルクリックし忘れてしまいますので、記録できないことがよくあります。
tasksフォルダに電源offは登録することもできませんし、

なんとか自動化できないでしょうか?

管理ツールにイベントビューアというのがあるのですが、
ちょっと利用しづらいのです。

宜しくお願いします。
困り度:
  • 暇なときにでも
質問投稿日時:
08/07/05 09:15
この質問に対する回答は締め切られました。

回答良回答20pt

ANo.1 クリックし忘れ防止ということを考えると、やはりイベントログを活用すべきなのかと思います。

標準のイベントビューアでも、イベントID(6006でOK?)でフィルタすればそれなりにいけますが、この操作さえも面倒だということであれば、イベントログから情報を切り出して保存するスクリプトを運用してはいかがでしょう。

http://www.microsoft.com/japan/technet/scriptcenter/scripts/logs/ev...
のコードを切り貼りして作ったコードを最後に載せておきます。

なお蛇足かもしれませんが、電源断はリンク先の情報使えませんかね。
http://homepage2.nifty.com/winfaq/w2k/boot.html#1001


++++参考コードここから++++
Const ForAppending = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile _
("c:\temp\shutlog.txt", ForAppending, True)

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colLoggedEvents = objWMIService.ExecQuery _
("Select * from Win32_NTLogEvent Where Logfile = 'System' and " _
& "EventCode = '6006'")
For Each objEvent in colLoggedEvents
objTextFile.Write(WMIDateStringToDate(objEvent.TimeWritten) & vbTab & _
objEvent.Message)
Next
Wscript.Echo "ログの書き出しが終了しました"
objTextFile.Close

Function WMIDateStringToDate(strUTCTime)
WMIDateStringToDate = CDate(Mid(strUTCTime, 5, 2) & "/" & _
Mid(strUTCTime, 7, 2) & "/" & Left(strUTCTime, 4) _
& " " & Mid (strUTCTime, 9, 2) & ":" & _
Mid(strUTCTime, 11, 2) & ":" & Mid(strUTCTime, _
13, 2))
End Function
回答者:Raistlin
種類:回答
どんな人:一般人
自信:自信あり
回答日時:
08/07/07 00:44
この回答へのお礼色々と盛りだくさんの情報ありがとう御座います。
参考にさせて頂きます!!