Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


139 / 13141 ツリー ←次へ | 前へ→

【79276】WMIを利用したWindowsイベントログの取得 ギケン 17/6/26(月) 15:09 質問[未読]
【79277】Re:WMIを利用したWindowsイベントログの取得 hatena 17/6/26(月) 22:02 回答[未読]
【79278】Re:WMIを利用したWindowsイベントログの取得 ギケン 17/6/27(火) 9:26 お礼[未読]

【79276】WMIを利用したWindowsイベントログの取得
質問  ギケン E-MAIL  - 17/6/26(月) 15:09 -

引用なし
パスワード
   はじめまして。

勤怠管理用(出勤簿)にWindowsの開始時間、シャットダウン時間を取得しようとしています。

Windowsの「システムログ」からイベントIDの「12(Windowsの開始)」と「13(Windowsのシャットダウン)」日時を一覧(一ヶ月分)で取得したいです。

出勤簿の処理に使用しますので、「指定日時」〜「指定日時」の一ヶ月間のログが欲しいのです。

現状、以下ページを参考に取得を試みました。

http://vba−geek.jp/blogーentry−314.html

実行した結果、ログは取得出来るのですが「すべてのログ」が「1日分だけ」取得されます。

処理完了までの時間も長いです。

ログが4000~5000行ある中で必要なのは2行だけですので、なんとかピンポイントでその2行だけ取得したいです。


WMIオブジェクトの参照
Set objWMIService = GetObject("winmgmts:" _
  & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

イベントログの抽出条件(日付指定のみ)を指定したSQLを実行
Set colEvents = objWMIService.ExecQuery _
  ("Select * from Win32_NTLogEvent Where TimeWritten >= '" & utcStartDate & "'")


↑このあたりを修正するのかなと思いましたが、試した限り上手く行きませんでした。

結構ググりましたが情報見つけること出来ず、手持ちの資料にもWMIについて記載されたものありませんでしたので質問させていただきました。

もしおわかりになられる方がいらっしゃればご教示頂きたく、もしくはヒント頂けるだけでもありがたいので、よろしくお願いいたします。

【79277】Re:WMIを利用したWindowsイベントログの...
回答  hatena  - 17/6/26(月) 22:02 -

引用なし
パスワード
   ▼ギケン さん:
>イベントログの抽出条件(日付指定のみ)を指定したSQLを実行
>Set colEvents = objWMIService.ExecQuery _
>  ("Select * from Win32_NTLogEvent Where TimeWritten >= '" & utcStartDate & "'")

下記のような感じで。(変数宣言は適宜追加してください。)

'UTC日時値に変換するためのオブジェクトを作成
Set utcStartDate = CreateObject("WbemScripting.SWbemDateTime")
Set utcEndDate = CreateObject("WbemScripting.SWbemDateTime")

'開始日、終了日の設定
StartDate = #5/1/2017#
EndDate = #6/1/2017#

'UTC日時に変換
utcStartDate.SetVarDate StartDate, True
utcEndDate.SetVarDate EndDate, True


'中略

Set colEvents = objWMIService.ExecQuery _
  ("Select * from Win32_NTLogEvent Where (EventCode = 12 Or EventCode = 13) And " & _
   "TimeWritten >= '" & utcStartDate & "' AND TimeWritten < '" & utcEndDate & "'")

【79278】Re:WMIを利用したWindowsイベントログの...
お礼  ギケン  - 17/6/27(火) 9:26 -

引用なし
パスワード
   hatena 様

ありがとうございます!

さっそくご教示頂いたとおり記載し、無事思い通りのログ出力されました!

hatena様に頂いたコードを改めて拝見すると、自分では辿り着かなかった(辿り着いたとしても今回の件には間に合わない)と思います。

大変助かりました。

ありがとうございました!

139 / 13141 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free