我想将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”列仍然有问题。
寻求帮助。
答案 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