2011-12-21 60 views
0

我試圖訪問事件查看器中「詳細信息」選項卡中可用的信息。從TaskScheduler事件日誌中獲取任務名稱

我已經意識到TaskScheduler事件不能通過System.Diagnostics.EventLog獲得,而是通過System.Diagnostics.Eventing獲得。

到目前爲止,我有這樣的:

var query = new EventLogQuery("Microsoft-Windows-TaskScheduler/Operational", PathType.LogName); 
var reader = new EventLogReader(query); 
var eventRec = reader.ReadEvent(); 

,但我不能返回的對象中的任何地方找到EVENTDATA。

我試圖找到這個信息(GUID的去除),明確了 「EventData-> TASKNAME」:

< Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> 
< System> 
< Provider Name="Microsoft-Windows-TaskScheduler" Guid="...." /> 
< EventID>110</EventID> 
< Version>0</Version> 
< Level>4</Level> 
< Task>110</Task> 
< Opcode>0</Opcode> 
< Keywords>0x8000000000000000</Keywords> 
< TimeCreated SystemTime="2011-12-21T17:51:13.029864700Z" /> 
< EventRecordID>203307</EventRecordID> 
< Correlation ActivityID="{090...440}" /> 
< Execution ProcessID="996" ThreadID="9932" /> 
< Channel>Microsoft-Windows-TaskScheduler/Operational</Channel> 
< Computer>....</Computer> 
< Security UserID="S-1-5-18" /> 
< /System> 
< EventData Name="TaskRunEvent"> 
**< Data Name="TaskName">\testTask</Data>** 
< Data Name="InstanceId">{090...440}</Data> 
< Data Name="UserContext">cussonsh</Data> 
< /EventData>  < /Event> 
+0

你需要看看WMI我已經做了很多事情與事件日誌使用和查詢事件日誌我警告你,但是,當涉及到日期例如它存儲在一個完全不同的格式比預期.. – MethodMan 2011-12-21 22:31:11

回答

1

EVENTDATA是EventRecord.Properties。即在你的情況下,它會是eventRec.Properties。

但這些屬性是IList,而EventProperty類只有一個值字段,但沒有名稱。我不確定如何檢索它... 但是,您仍然應該能夠使用EventRecord.ToXml()方法獲取XML表示(完全像您所示),然後從該XML檢索名稱/值。

+0

太糟糕了關於IList,物業在那裏。我會把它們從XML中拿出來。謝謝。 – 2011-12-22 15:05:05

相關問題