【发布时间】:2012-01-20 23:56:20
【问题描述】:
我已经使用 PowerShell 从 EventLog 导出数据,并创建了一个示例架构以将数据导入 SQL,但是使用 ConvertToXML 从 PowerShell 导出数据的方式存在问题。
XML 的导出如下所示;
<Property Name="Version">0</Property>
<Property Name="Qualifiers" />
<Property Name="Level">0</Property>
<Property Name="Task">14339</Property>
<Property Name="Opcode">0</Property>
<Property Name="Keywords">-9218868437227405312</Property>
<Property Name="RecordId">57963203</Property>
<Property Name="ProviderName">Microsoft-Windows-Security-Auditing</Property>
但它应该看起来像这样;
<Version>0</Version>
<Qualifiers> />
<Level>0</Level>
<Task>14339</Task>
下面的代码标识了属性名称版本和属性标签的开始和结束 并尝试将其更改为但不幸的是它更改了它而不将内容保留在标签内。我似乎无法保持价值。
$EventLog = (Get-WinEvent -ComputerName xxxxxxx-FilterXML $Query) | ConvertTo-Xml -NoTypeInformation
$EventLogModify = (Get-Content P:\EventTracking\Events.xml) | foreach{$_ -replace '(<Property Name=""Version"">(.*?)</Property>)', "<Version></Version>" };Set-Content P:\EventTracking\Events.xml $EventLogModify;
【问题讨论】:
标签: xml regex powershell replace