7

この質問への回答により、トレースのニーズに「Event Tracing for Windows」を使用することを検討するようになりました。NTraceに遭遇しました。これは、C# コードから ETW イベントを生成する良い方法のようです (XP 互換の「クラシック プロバイダー」モデルを使用)。

ただし、これらのイベントを使用する簡単な方法を見つけることができません-リアルタイムで表示したり、ファイルにログを記録したりします. 私が見つけた唯一の方法は、NTrace のドキュメントに記載されている方法で、Windows DDK の一部としてのみ利用可能なツールを使用することです。

現場で複雑な問題が発生した場合、トレースを含むファイルを作成するようユーザーに依頼する必要がある場合があります。ユーザーに DDK のダウンロードを要求したり、これを行うために多くの複雑な操作を実行したりすることはできません。

ETW イベントをファイルに記録するための簡単で使いやすい方法はありますか?

また、管理者として実行していない場合、誰かが Windows Vista/7 で ETW イベントを使用することは可能ですか?

4

5 に答える 5

3

Windows イベント ログは ETW を読み取ります。実際、これは消費者 (非プログラム) が ETW トレースを表示およびエクスポートするための正しい方法だと思います。

例については、こちらを参照してください。http://blogs.microsoft.co.il/blogs/applisec/archive/2009/10/12/reading-etw-tracing-using-event-viewer.aspx

msdn に関するこの質問では、ログが表示されない場合の対処方法について説明しています。ここで何か役に立ちますか?

于 2010-03-05T02:37:09.310 に答える
3

TraceView はすぐに使用できる最も簡単なソリューションですが、プロバイダーに固有の独自の ETW ビューアーを作成することもできます。これにより、プレゼンテーションを完全に制御できるようになり、TraceView はエンド ユーザーに実行を要求できるものというよりもデバッグ ツールに近いため、エンド ユーザーにとってははるかに簡単になります。

ドキュメントによると、リアルタイムのトレースに関する限り、次のようになります。

管理者権限を持つユーザー、Performance Log Users グループのユーザー、および LocalSystem、LocalService、NetworkService として実行されているサービスのみが、リアルタイムでイベントを消費できます。制限付きユーザーにリアルタイムでイベントを消費する権限を付与するには、そのユーザーを Performance Log Users グループに追加します。

Windows XP および Windows 2000: 誰でもリアルタイム イベントを使用できます。

独自の ETW ビューアー (リアルタイムまたはログ ファイル) の作成に関心がある場合は、関連ドキュメントを参照してください。

于 2010-03-07T21:30:43.520 に答える
2

トレースには個人を特定できる情報が含まれている可能性があるため、ETWトレースは管理者のみが実行するように設計されています。また、管理者以外の人がトレースをキャプチャできる場合、セキュリティ上の脅威が発生します。

これがxperfからの警告の例です

キャプチャしたばかりのトレース「C:\ Windows \ system32 \ kernel.etl」には、アクセスしたファイルへのパス、アクセスしたレジストリへのパス、プロセス名など、個人を特定できる情報が含まれている場合があります。正確な情報は、ログに記録されたイベントによって異なります。このトレースを他の人と共有するときは、このことに注意してください。

これがあなたの質問に答えることを願っています

于 2010-03-19T02:02:56.367 に答える
1

IMO Perfviewは、ETW トレースを制御および表示するために利用できる最高のツールの 1 つです。また、マネージド コール スタックを提供することもできます。その最良の部分は、任意のサーバーに xcopy してトレースを収集できることです。

Perfview は TraceEvent ライブラリを使用します。ここでは、API と C# を使用して使用する方法のサンプルを示します。

于 2011-08-07T19:06:01.920 に答える
1

独自のカスタム プロバイダーからカスタム ETW トレースを取得する方法 と、マネージ コード内で ETW を使用する方法を次に示します。

お役に立てれば。

于 2010-04-02T04:18:40.490 に答える