0

我想将 Windows 归档事件转换为 Json 格式。我正在做以下事情。

New-PSDrive -Name P -Root "\\$netappip\etc$\log" -PSProvider FileSystem -Credential $cred
$WinEvtJson=Get-WinEvent -Path "P:\adtlog.20131021141037.evt" -Oldest | Format-List -Property * | ConvertTo-Json
$WinEvtJson
Remove-PSDrive P

我得到的结果为

Internal.Format.ListViewField Microsoft.PowerShell.Commands.Internal.Format.ListViewField Microsoft.PowerShell.Commands.Internal.Format.ListViewField Microsoft.PowerShell.Commands.Internal.Format.ListViewField Microsoft.PowerShel l.Commands.Internal.Format。 ListViewField Microsoft.PowerShell.Commands.Internal.Format.ListViewField Microsoft.PowerShell.Commands.Internal.Format.ListViewField Microsoft.PowerShell.Commands.Internal.Format.ListViewField Microsoft.PowerShell.Commands.Internal.Format.ListViewField Microsoft.PowerShell。 Commands.Internal.Format.ListViewField Microsoft.PowerShell.Commands.Internal.Format.ListViewField Microsoft.PowerShell.Commands.Internal.Format.ListViewField Microsoft。PowerShell.Commands.Internal.Format.ListViewField Microsoft.PowerShell.Commands.Internal.Format.ListViewField Microsoft。

我做错了什么?

4

1 回答 1

1

每当您使用Format-*cmdlet 时,请将其视为该管道或数据集合的行尾。Format-*将您的数据更改为适合显示的字符串,仅此而已 - 使其无法用于任何其他处理或任何其他 cmdlet 使用。尝试这个:

New-PSDrive -Name P -Root "\\$netappip\etc$\log" -PSProvider FileSystem -Credential $cred
$WinEvtJson=Get-WinEvent -Path "P:\adtlog.20131021141037.evt" -Oldest | ConvertTo-Json
$WinEvtJson
Remove-PSDrive P
于 2013-10-21T17:51:46.537 回答