none
請問該如何用task scheduler結合powershell來撈event viewer的訊息 RRS feed

  • 問題

  • 下面這行直接丟到powershell可以成功create用時間當檔名的log檔,但丟進task scheduler就不行

    Get-EventLog application | Out-File C:\\Iog\\$((get-date).tostring("yyyy_MM_dd_hh_mm_ss")).log

    經過測試把檔名寫成固定檔名,task scheduler是可以create檔案的,例如:log.log、log.txt但改成如上的get-date,結果就什麼都沒跑出來。

    請問該如何修正,task scheduler才能產出用時間當檔名的logfile?

    2018年4月12日 上午 08:18

解答

  • 你的那行我在 PowerShell 中也無法正確執行,改為以下這樣可正確運行

    Get-EventLog application | Out-File "C:\log\$((get-date).tostring("yyyy_MM_dd_hh_mm_ss")).log"

    但上面這行放到工作排程器裡頭的新增參數亦無法正確運行(啟動程式 -> 程式或指令碼填入PowerShell)

    研判是因為他是用 cmd 直接將參數接在 Powershell 後頭去運作的,所以失敗

    「新增參數」改寫為:

    "Get-EventLog application | Out-File \"C:\\log\\$((get-date).tostring(\"yyyy_MM_dd_hh_mm_ss\")).log\""

    也就是用引號括起來,原來的引號該跳脫的就跳脫

    這樣就 ok 了!希望有幫上忙~


    • 已編輯 Mystic Lin 2018年4月12日 下午 03:44
    • 已標示為解答 lucifer0147 2018年4月13日 上午 09:05
    2018年4月12日 下午 03:19

所有回覆

  • 你的那行我在 PowerShell 中也無法正確執行,改為以下這樣可正確運行

    Get-EventLog application | Out-File "C:\log\$((get-date).tostring("yyyy_MM_dd_hh_mm_ss")).log"

    但上面這行放到工作排程器裡頭的新增參數亦無法正確運行(啟動程式 -> 程式或指令碼填入PowerShell)

    研判是因為他是用 cmd 直接將參數接在 Powershell 後頭去運作的,所以失敗

    「新增參數」改寫為:

    "Get-EventLog application | Out-File \"C:\\log\\$((get-date).tostring(\"yyyy_MM_dd_hh_mm_ss\")).log\""

    也就是用引號括起來,原來的引號該跳脫的就跳脫

    這樣就 ok 了!希望有幫上忙~


    • 已編輯 Mystic Lin 2018年4月12日 下午 03:44
    • 已標示為解答 lucifer0147 2018年4月13日 上午 09:05
    2018年4月12日 下午 03:19
  • 你的那行我在 PowerShell 中也無法正確執行,改為以下這樣可正確運行

    Get-EventLog application | Out-File "C:\log\$((get-date).tostring("yyyy_MM_dd_hh_mm_ss")).log"

    但上面這行放到工作排程器裡頭的新增參數亦無法正確運行(啟動程式 -> 程式或指令碼填入PowerShell)

    研判是因為他是用 cmd 直接將參數接在 Powershell 後頭去運作的,所以失敗

    「新增參數」改寫為:

    "Get-EventLog application | Out-File \"C:\\log\\$((get-date).tostring(\"yyyy_MM_dd_hh_mm_ss\")).log\""

    也就是用引號括起來,原來的引號該跳脫的就跳脫

    這樣就 ok 了!希望有幫上忙~


    可以了,感謝協助!
    2018年4月13日 上午 03:59
  • 你的那行我在 PowerShell 中也無法正確執行,改為以下這樣可正確運行

    Get-EventLog application | Out-File "C:\log\$((get-date).tostring("yyyy_MM_dd_hh_mm_ss")).log"

    但上面這行放到工作排程器裡頭的新增參數亦無法正確運行(啟動程式 -> 程式或指令碼填入PowerShell)

    研判是因為他是用 cmd 直接將參數接在 Powershell 後頭去運作的,所以失敗

    「新增參數」改寫為:

    "Get-EventLog application | Out-File \"C:\\log\\$((get-date).tostring(\"yyyy_MM_dd_hh_mm_ss\")).log\""

    也就是用引號括起來,原來的引號該跳脫的就跳脫

    這樣就 ok 了!希望有幫上忙~


    可以了,感謝協助!

    記得幫忙標記為解答喔~ 

    感謝!

    2018年4月13日 上午 04:48