none
get-eventlog只抓取所想要的字串 RRS feed

  • 問題

  • 請問各位前輩,在get-eventlog指令下,其中參數 -message的欄位中所顯示的字串太多,如何將所需要的字串抓出來就好了,  謝謝
    2014年3月17日 下午 01:14

解答

  • 可以啊, 當然output不會非常的漂亮, 但要截取兩塊訊息, 可以這樣做

    PS C:\> Get-EventLog -newest 10 -LogName Security -InstanceId 4624 | FL| Out-file C:\result.txt
    PS C:\> Get-Content C:\result.txt | Select-String "Account Name:","Source Network Address:"

    先把Get-EventLog的資訊丟到一個文字檔, 再以Get-Content配以Select-String抓需要的行目就可以了

    EventLog的 -InstanceId可以把目標更仔細的篩選出來. 因為Security Log更新實在太快了


    邊幫助, 邊鍛鍊

    • 已標示為解答 Edison0206 2014年3月18日 上午 10:36
    2014年3月18日 上午 07:22

所有回覆

  • 不知道你大概想要的是甚麼..下面提供一些截取Message內容的幾個範例

    用到的cmdlet如下

    $x = Get-EventLog -Newest 10 -LogName System

    $y = $x | select-string -inputobject {$_.message} -pattern "CutePDF"

    echo $y.line.trimstart("Driver")

    echo $y.line.trimend("before you log in again.")


    邊幫助, 邊鍛鍊

    2014年3月18日 上午 03:22
  • Hi,感謝回覆,不過我是想做到取得security event log -message裡面欄位的使用者及ip位置,這個做法可能做的到嗎,還是有其他建議??  謝謝
    2014年3月18日 上午 06:34
  • 可以啊, 當然output不會非常的漂亮, 但要截取兩塊訊息, 可以這樣做

    PS C:\> Get-EventLog -newest 10 -LogName Security -InstanceId 4624 | FL| Out-file C:\result.txt
    PS C:\> Get-Content C:\result.txt | Select-String "Account Name:","Source Network Address:"

    先把Get-EventLog的資訊丟到一個文字檔, 再以Get-Content配以Select-String抓需要的行目就可以了

    EventLog的 -InstanceId可以把目標更仔細的篩選出來. 因為Security Log更新實在太快了


    邊幫助, 邊鍛鍊

    • 已標示為解答 Edison0206 2014年3月18日 上午 10:36
    2014年3月18日 上午 07:22
  • Hi,謝謝,因為我比較想用out-gridview的輸出,所以我改用 xml 客製欄位一次輸出結果了,順便請教兩個問題

    1.我在將資料拉入hashtable時,如何得知所輸出的資料 $_  底下的所有屬性,如$_.properties,我要如何查出properties這個欄位

    2.如果我用遠端呼叫其他機器執行,使用out-gridview時,"會出現Out-GridView 無法解譯遠端工作階段的輸出",有辦法可以像在local端上一樣正常輸出嗎??

    非常感謝你花時間幫我解答,  謝謝

    2014年3月18日 上午 10:36
  • 1. 要查看所有欄目, 你可以用 Get-Eventlog -newest 1 | Format-List , 就會顯示出所有可以使用的欄位了

    2. 我要測試一下怎樣能重現出這個錯誤...


    邊幫助, 邊鍛鍊

    2014年3月18日 上午 10:59