2011-12-21 6 views
0

イベントビューアの[詳細]タブにある情報にアクセスしようとしています。TaskSchedulerイベントログからTaskNameを取得

私は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のを見つけるカント:

は、これまでのところ、私はこれを持っています。

は、私は、具体的には、 "EventData-> TaskName:指定"、(GUIDの除去)、この情報を見つけるためにしようとしている:

< 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

答えて

1

EventDataのがEventRecord.Propertiesです。私。あなたの場合は、eventRec.Propertiesになります。

しかし、これらのプロパティはIListであり、EventPropertyクラスには値フィールドのみがあり、名前はありません。そして、私はあなたがそれをどのように取り出すことができるのかわかりません... メソッドを使用してXML表現を得て、そのXMLから名前/値を取り出すことができるはずです。

+0

IList、プロパティはそこにあります。私はそれらをXMLから取り除くでしょう。ありがとう。 –

関連する問題