印刷物の監査をイベントログに出力し、それを VB2005 から取得しようとしています。
Win2003(x86) ではうまく取れるのですが、Win2008(x64) では取得できないので、何かアドバイス等お願いいたします。
■ソース
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim sq As New SelectQuery("select * from Win32_NTLogEvent Where Logfile='System' and SourceName='Print'")
Dim mos As ManagementObjectSearcher = Nothing
Me.ListBox1.Items.Clear()
Try
mos = New ManagementObjectSearcher(sq)
MsgBox(mos.Get.Count)
For Each mo As ManagementObject In mos.Get
Me.ListBox1.Items.Add(mo("EventCode").ToString + " / " + mo("Message").ToString)
mo.Dispose()
Next
Finally
If Not mos Is Nothing Then
mos.Dispose()
End If
End Try
End Sub
■状況
Win2003(x86)では上記ソースでうまくとれます。
Win2008(x64)のイベントログを見ると、イベントソースが"PrintSpooler"となっていたので、SourceName を "PrintSpooler" に変更してみたのですが、とれません。途中で表示される MsgBox では 0 件とでてきます("Print"のまま試しても 0 件 。)
以上から、from 句の次の "Win32_NTLogEvent" が 64bit 版では違ってくるのかと推測しているのですが、
インターネットで検索しても情報を見つける事ができませんでした。
尚、.NET アプリは Any CPU / x64 の両方のビルドで試しました。