0

イベント マニフェスト ファイルを使用してイベント ビューアーに登録するいくつかの Windows イベントを定義しました。しかし、powershell コマンドを呼び出してプロバイダーからイベントを取得すると、

(Get-WinEvent -ListProvider MyProvider).Events

タスクの値 (System.Diagnostics.Eventing.Reader.EventTask) が間違ったデータ型に解析されていることに気付きました。たとえば、イベントのタスク値はイベント マニフェスト ファイルで 65534 と定義されていますが、powershell はそれを -2 に解析しました。したがって、この Windows イベントを PowerShell で公開することはできません。

New-WinEvent -ProviderName MyProvider -Id MyEventId -Payload MyPayload

次の例外が発生します。

New-WinEvent : 負でない数値が必要です。パラメータ名: task + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [New-WinEvent], ArgumentOutOfRangeException + FullyQualifiedErrorId : System.ArgumentOutOfRangeException,Microsoft.PowerShell.Commands.NewWinEventCommand

MyEventId に関連付けられたタスクが解析されて負の数になるためです。それでも、この Windows イベントが正しいタスク値でイベント ビューアーに正常に記録されるのを見てきました。

これはpowershellのバグですか?PowerShell からこの Windows イベントを公開できるように、この問題を回避するための提案はありますか?

編集:

EventLogRecord.Taskによると、タスク値は 0 から 65519 の間の任意の値になる可能性があるため、65534 は有効なタスク値ではありません。しかし、値が 65493 の別のタスクがあり、明らかに範囲内にありますが、それでも -43 に解析されます。このタスクに関連付けられた Windows イベントを公開しようとすると、上記と同じ例外がスローされます。

4

0 に答える 0