2012-12-15 80 views
0

我有一對夫婦,其執行郵箱腳本的移動雲辦公365.腳本有時會失敗,和其他人沒有,我沒有,爲什麼它 失敗任何線索,但我想它是因爲服務不可用在執行任務時,不管怎麼說,問題是,這些腳本運行的計劃任務和一個必須有其他的前執行 我怎麼能檢測如果第一個任務失敗,如果是的話那就安排第二項任務。運行PowerShell腳本作爲計劃任務

的任務是在2008年窗口R2所以我使用任務計劃程序運行的PowerShell v2的cmdlet的。

我不知道是否應該有些條目保存到一個文本文件,使用不同的任務調度或許運行使用PowerShell的每項工作,通過以下方式:

foreach ($script in $scripts) 
{ 
    #check status in a text file 
    $job = start-job -Filepath c:\myscript.ps1 -AsJob 
    Wait-Job $job -Timeout 180 
} 

什麼是最好的辦法?

感謝,

回答

0

您可以使用schtasks.exe查詢/啓用或重新安排你的任務。或者你可以使用調度的COM object(小心schtasks的輸出依賴於語言)。與一個或其它方法檢查lastTaskResult並重新安排或不是你的其他任務。

例子:

使用COM對象

icm -AsJob -JobName getTasks -ComputerName $computername -ScriptBlock{ 
    $Schedule = new-object -com("Schedule.Service") 
    $Schedule.connect($env:computername) 
    $Tasks = $Schedule.getfolder("\").gettasks(0) 
    $Tasks | Select-Object Name,Path,State,Enabled,LastRunTime,LastTaskResult 
    } 

獲取有關schtasks的特定任務

schtasks /query /TN "\Microsoft\Windows\Autochk\Proxy" /v /fo csv |ConvertFrom-Csv 
+0

感謝Kayasax獲取根文件夾中的所有任務,你認爲升級到PS3和使用PSScheduledJob模塊將是一個有效的選項。它確實有道理? – m0dest0

+0

犯規費太多精力升級... :)我不使用模塊我不能回答,可以使意義,如果你只運行PowerShell腳本的任務是什麼? –

相關問題