Powershell 从System.Diagnostics.Eventing.Reader.EventLogRecord转换为XML时发生System.Management.Automation.RuntimeException

Powershell 从System.Diagnostics.Eventing.Reader.EventLogRecord转换为XML时发生System.Management.Automation.RuntimeException,powershell,event-log,get-winevent,Powershell,Event Log,Get Winevent,我遇到了与上一篇文章中提到的相同的问题 事件日志中存在一些无效字符,因此使用.ToXML()失败,出现异常: System.Management.Automation.RuntimeException无法转换值 "http://schemas.microsoft.com/win/2004/08/events/event'> 忽略无关数据 <Data Name='AccessReason'>%%1538: %%1804 %%1541: %%1801 D:(A;ID;FA;

我遇到了与上一篇文章中提到的相同的问题 事件日志中存在一些无效字符,因此使用.ToXML()失败,出现异常:

System.Management.Automation.RuntimeException无法转换值 "http://schemas.microsoft.com/win/2004/08/events/event'> 忽略无关数据

<Data Name='AccessReason'>%%1538:   %%1804
    %%1541: %%1801  D:(A;ID;FA;;;S-1-5-21-4261485934-2742084322-1513010315-1120)
    %%4416: %%1801  D:(A;ID;FA;;;S-1-5-21-4261485934-2742084322-1513010315-1120)
    %%4417: %%1801  D:(A;ID;FA;;;S-1-5-21-4261485934-2742084322-1513010315-1120)
    %%4418: %%1801  D:(A;ID;FA;;;S-1-5-21-4261485934-2742084322-1513010315-1120)
    %%4419: %%1801  D:(A;ID;FA;;;S-1-5-21-4261485934-2742084322-1513010315-1120)
    %%4420: %%1801  D:(A;ID;FA;;;S-1-5-21-4261485934-2742084322-1513010315-1120)
    %%4423: %%1801  D:(A;ID;FA;;;S-1-5-21-4261485934-2742084322-1513010315-1120)
    %%4424: %%1801  D:(A;ID;FA;;;S-1-5-21-4261485934-2742084322-151301031亖퍲翾</Data>
%%1538:%%1804
%%1541:%%1801 D:(A;ID;FA;;S-1-5-21-4261485934-2742084322-1513010315-1120)
%%4416:%%1801 D:(A;ID;FA;;S-1-5-21-4261485934-2742084322-1513010315-1120)
%%4417:%%1801 D:(A;ID;FA;;S-1-5-21-4261485934-2742084322-1513010315-1120)
%%4418:%%1801 D:(A;ID;FA;;S-1-5-21-4261485934-2742084322-1513010315-1120)
%%4419:%%1801 D:(A;ID;FA;;S-1-5-21-4261485934-2742084322-1513010315-1120)
%%4420:%%1801 D:(A;ID;FA;;S-1-5-21-4261485934-2742084322-1513010315-1120)
%%4423:%%1801 D:(A;ID;FA;;S-1-5-21-4261485934-2742084322-1513010315-1120)
%%4424:%%1801 D:(A;ID;FA;;;S-1-5-21-4261485934-2742084322-151301031亖퍲翾
键入“System.Xml.XmlDocument”。错误:'',十六进制值0x04,是无效字符。第19行,位置117

我如何才能去掉无效字符?我想可能是以下过程:

  • 转换为字符串(ToString()似乎不起作用,当通过写主机输出时,它只输出对象类型的名称)
  • 使用.replace和regex删除无效的XML字符
  • 转换回/序列化为System.Diagnostics.Eventing.Reader.EventLogRecord 反对(不知何故?)
  • 转换为XML(使用.ToXML())

  • 如何实现此过程的步骤1和步骤3?

    请回答您的问题以提供一个。@JosefZ我不确定如何使用PowerShell实现这一点。System.Diagnostics.Eventing.Reader.EventLogRecord不是我可以创建的类型,并且我无法在中提供包含此问题的安全日志文件。这表明该数据类型没有构造函数因此,我无法使用字符串创建它。我甚至无法显示将字符串转换为系统。字符串在PowerShell中不包含名为“ToXml”的方法。您能建议我如何在不提供事件日志的情况下执行您想要的操作吗?请您提出问题以提供答案。@JosefZ我不确定如何使用PowerShell.System.Diagnostics.Eventing.Reade执行此操作r、 EventLogRecord不是我可以创建的类型,并且我无法在中提供包含此问题的安全日志文件。显示该数据类型没有构造函数,因此我无法使用字符串创建该类型。我甚至无法显示将字符串转换为系统。该字符串在PowerShell中不包含名为“ToXml”的方法。您能建议我怎么做吗如果不提供事件日志,您想要什么?