如何在vb.net中查询Microsoft Windows PrintService

时间:2019-05-17 14:23:14

标签: windows vb.net event-log

我试图找出如何在vb.net中查询PrintService操作日志。我不是试图写它,而是在vb.net中从中读取。如果我只查询“应用程序”日志,这就是我到目前为止可以使用的内容

 Dim logInfo As System.Diagnostics.EventLog = New System.Diagnostics.EventLog()
        logInfo.Log = "Application"
        logInfo.MachineName = "."
        Dim strImage As String = ""
        Response.Write("<p>There are  " & logInfo.Entries.Count & " entries in the System event log.</p>")

但是。.我正在尝试访问Microsoft.Windows.PrintService.Operational日志。您不能访问它,还是我的语法错误?我尝试过的是

logInfo.log= "Microsoft.Windows.PrintService.Operational"

logInfo.log= "Microsoft-Windows-PrintService/Operational"

都给了我

  

System.InvalidOperationException     HResult = 0x80131509     Message =计算机“。”上的事件日志“ Microsoft.Windows.PrintService.Operational”。不存在。     来源= App_Web_dxkz1kso     堆栈跟踪:      在C:\ Dev \ WebAdminV2 \ Pages \ SampleCode \ ConnectToEventLog.aspx.vb:第17行

中的Pages_SampleCode_ConnectToEventLog.Pages_SampleCode_ConnectToEventLog_Load(Object sender,EventArgs e)

有什么想法吗? 谢谢

吉米-确实尝试过。.我认为您的建议是..代码看起来像这样

Dim eventID As String = "307"
    Dim logSource As String = "Microsoft-Windows-PrintService/Operational"
    Dim sQuery As String = String.Format("*[System/EventID={0}]", eventID)
    Dim elQuery = New EventLogQuery(logSource, PathType.LogName, sQuery)
    Dim elReader = New System.Diagnostics.Eventing.Reader.EventLogReader(elQuery)
    Dim eventList As List(Of EventRecord) = New List(Of EventRecord)()
    Dim eventInstance As EventRecord = elReader.ReadEvent()

    While eventInstance IsNot Nothing
        eventList.Add(eventInstance)
        eventInstance = elReader.ReadEvent()
    End While

我没有收到任何错误,但是当它发生时,eventInstance并非全无,而是全无。我还没有想出要告诉它的位置,我也想知道它在我的本地计算机上的样子..而且日志中还有条目。

以防万一其他人有兴趣..我想我已经读过日志了。.许多方面还没有弄清楚..但是这看起来像是它会读日志..这是唯一运行的代码..仅这三行

Dim query As EventLogQuery = New EventLogQuery("Microsoft-Windows-PrintService/Operational", PathType.LogName)
    query.ReverseDirection = True
    Dim reader As EventLogReader = New EventLogReader(query)
enter code here

0 个答案:

没有答案