質問 |
||
| 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 |
|
| |
| この回答へのお礼 | 色々と盛りだくさんの情報ありがとう御座います。 参考にさせて頂きます!! |