GetEventLog - 如何将'Message'属性扩展为一行

时间:2013-01-18 14:21:17

标签: powershell powershell-v2.0

在PowerShell v2中,我正在使用此cmdlet Get-EventLog Security | Export-csv C:\file.txt并获得以下结果。

我需要在一行中获取所有信息。在我的示例中,“消息”属性是多行的。

"538","MYPC","System.Byte[]","28330","Accesso/fine sess.","2","SuccessAudit","Fine sessione dell'utente:

    Nome utente:    myusername

    Dominio:        MYPC

    ID di accesso:  (0x0,0x58C702F)

    Tipo di accesso:    3
","Security","System.String[]","538","18/01/2013 10:35:54","18/01/2013 10:35:54","MYPC\myusername",,

我也尝试使用Format-Table,但它会截断消息字段。

2 个答案:

答案 0 :(得分:3)

select要导出的字段,并将Message字段替换为自身的错位版本:

Get-EventLog Security `
  | select EventId, ..., @{n='Message';e={$_.Message -replace '\s+', " "}} `
  | Export-Csv "C:\file.txt"

答案 1 :(得分:-1)

我试过上面..多行文字进入一行很难阅读..修剪对我的情况很有用。

Get-EventLog Security |
    Select EventId, ..., @{n='Message';e={$_.Message.trim()}} |
    Export-Csv "C:\file.csv"