プロが教えるわが家の防犯対策術!

最近システム管理関係の業務を行うことになりまずは手始めにイベントログのエラー監視をすることになりました。

そこでExcel2003でWindowsのイベントログの内容を取得するマクロを用意したいのですが、どこかに良いサンプルはありませんでしょうか?

A 回答 (2件)

Dim W, C, T, P, N, V, I, X


Set W = GetObject("winmgmts:\\.\root\cimv2")
Set C = W.ExecQuery("SELECT * FROM Win32_NTLogEvent" _
   & " WHERE Type='エラー'") 'エラーのみ収集
For Each T In C
  For Each P In T.properties_
    N = P.Name
    V = P.Value
    X = -1
    If P.IsArray Then
      On Error Resume Next
      X = UBound(P.Value)
      On Error GoTo 0
    End If
    If X < 0 Then
      Debug.Print N; ": "; V
    Else
      For I = 0 To X
        Debug.Print N; "("; CStr(I); "): "; V(I)
      Next
    End If
  Next
Next

プロパティ名と内容がイミディエイトウィンドウに出力されます。
TimeGenerated、TimeWritten は日付なので、次の方法で変換します。
Dim S
Set S = CreateObject("WbemScripting.SWbemDateTime")
S.Value = T.TimeGenerated
その後、Sの各プロパティを参照します。(下記参照)
Year,Month,Day,Hours,Minutes,Seconds,Microseconds
実行するユーザはイベントログを扱う権限が必要です。
    • good
    • 1
この回答へのお礼

お返事が遅くなりました。ありがとうございました。

サンプルを頂いたあといろいろ調べてみたらWMI Fun (http://www.wmifun.net/)というサイトを見つけてこちらもみながら勉強しています。

お礼日時:2009/10/28 22:05
    • good
    • 0
この回答へのお礼

WMIの便利さがわかりました。

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

お礼日時:2009/10/28 22:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!