将XML转换为CSV(StartupInfo XML日志文件)

时间:2018-12-21 10:43:12

标签: powershell

我想将StartupInfo XML日志文件(Windows 10)转换为CSV。

C:\Windows\System32\WDI\LogFiles\StartupInfo\<SID>_StartupInfo<NUMBER>.xml

我尝试过:

[xml]$StartupInfo = Get-Content "C:\Windows\System32\WDI\LogFiles\<SID>_StartupInfo<NUMBER>.xml"
$StartupInfo.StartupData.Process | Export-Csv -Path C:\Users\<USER>\Desktop\StartupInfo.csv -NoTypeInformation

但是,“ CommandLine”,“ DiskUsage”和“ CpuUsage”列仍然有问题。

寻求帮助。

1 个答案:

答案 0 :(得分:2)

我确信还有更多杰出的方法可以做到这一点,例如XSLT转换。但是对于这种特殊类型的XML文件,我认为这种方法有效:

$StartupInfo.StartupData.Process | Select-Object Name,PID,StartedInTraceSec,
    @{name='CommandLine';Expression={$PSitem.CommandLine.'#cdata-section'}},
    @{name='DiskUsage';Expression={$PSItem.DiskUsage.'#text'}},
    @{name='CPUUsage';Expression={$PSItem.CPUUsage.'#text'}} | 
        Export-Csv -Path C:\Users\<USER>\Desktop\StartupInfo.csv -NoTypeInformation

问题在于XML文件不像CSV文件那样平坦。如果您想对我使用的技术进行说明,请看这里:https://mcpmag.com/articles/2017/01/19/using-powershell-calculated-properties.aspx