我定义了一些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:未指定:(:) [New-WinEvent],ArgumentOutOfRangeException + FullyQualifiedErrorId:System.ArgumentOutOfRangeException,Microsoft.PowerShell.Commands.NewWinEventCommand
因为与MyEventId关联的任务被解析为负数。但是我已经看到此Windows事件已成功以正确的任务值登录到事件查看器中。
这是Powershell中的错误吗?有没有人建议解决这个问题,以便我可以从Powershell发布此Windows事件?
编辑:
根据EventLogRecord.Task,任务值可以是0到65519之间的任何值,因此65534仍然不是有效的任务值。但是我还有另一个值为65493的任务,该任务显然位于范围内,但仍解析为-43。当我尝试发布与此任务相关的Windows事件时,会引发上述相同的异常。