https://serverfault.com/questions/743515/my-event-log-has-corrupted-dacl-write-attributes-in-4656-file-audit-events/852636#で述べたのと同じ問題が発生してい ます。 852636イベント ログに無効な文字が含まれているため、.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>
「System.Xml.XmlDocument」と入力します。エラー: 「''、16 進値 0x04 は無効な文字です。19 行目、117 番目の位置。」
無効な文字を削除するにはどうすればよいですか? 以下のようなプロセスが考えられます。
- 文字列への変換 (ToString() は機能していないようです。Write-Host を介して出力すると、オブジェクト タイプの名前が出力されるだけです)
- .replace と regex を使用して無効な XML 文字を削除する
- System.Diagnostics.Eventing.Reader.EventLogRecord オブジェクトに戻す/シリアル化する (どういうわけか?)
- XML に変換 (.ToXML() を使用)
このプロセスのステップ 1 と 3 を達成するにはどうすればよいですか?