我已经定义了一些我使用事件清单文件注册到事件查看器的 Windows 事件。但是当我通过调用 powershell 命令从我的提供者那里获取事件时
(Get-WinEvent -ListProvider MyProvider).Events
我注意到任务值(System.Diagnostics.Eventing.Reader.EventTask)被解析为错误的数据类型。例如,事件的任务值在事件清单文件中定义为 65534,但 powershell 将其解析为 -2。因此,我无法在 powershell 中发布此 windows 事件,即当我调用时
New-WinEvent -ProviderName MyProvider -Id MyEventId -Payload MyPayload
我得到以下异常:
New-WinEvent :需要非负数。参数名称:任务+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ + 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 事件时,会引发上述相同的异常。