Powershell中用于解析Windows事件的“任务”值的数据类型错误

时间:2019-11-20 15:22:33

标签: powershell get-winevent

我定义了一些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事件时,会引发上述相同的异常。

0 个答案:

没有答案