2015-11-04 62 views
0

我正在運行一個遠程作業作爲部署應該永久運行(播種隨機數據)的一部分,但是這個進程在幾個小時後不斷死亡..我正在計算一些丟失的遠程服務標誌或東西。Powershell遠程作業在幾個小時後死亡

我通過這個PowerShell命令

Invoke-Command -ComputerName DEPLY -Credential $cred -AsJob -ScriptBlock { 
    C:\Deply\${bamboo.Configuration}\Seed\Seed.exe /y 
} 

運行遠程工作有什麼方法防止被殺死這個過程?

+0

AFAIK的工作,這也是在'等待,Job'參數'-Timeout'說。該參數默認值爲'-1',所以它應該繼續等待。你確定你的'Seed.exe'不是一段時間後停止工作的人嗎? – DarkLite1

+0

是的 - 那裏真的有白色的(真的)..大聲笑。我也將日誌文件寫入磁盤,沒有例外或奇怪的行爲..它只是靜靜地關閉。 – Charles

+1

如果你想確定它是否是'Seed.exe'而不是停止作業,你可以在作業之後放置一些代碼。並用'Get-Job |檢查Receive-Job「,以查看是否在輸出中看到最後一段代碼。如果不是,那麼你知道這是'Seed.exe'崩潰。 「Try/Catch」可能是一個選項。 – DarkLite1

回答

0

因此,在我看來,PowerShell作業只有一個無證的停止超時。我確認我的程序沒有崩潰,遠程服務只是在3-4小時後將其殺死。或者也許它是一個操作系統的東西 - 我不知道。

我切換到psexec它不惹的過程 - 在這裏就是命令:

psexec \\DEPLY -accepteula -d -u "corp\administrator" -p "xxx" C:\Deply\${bamboo.Configuration}\Seed\Seed.exe /y

您還可以通過WMI啓動它,像這樣:

$process = get-wmiobject -query "SELECT * FROM Meta_Class WHERE __Class = 'Win32_Process'" -namespace "root\cimv2" -computername DEPLY -credential $cred $results = $process.Create("C:\Deply\${bamboo.Configuration}\Seed\Seed.exe /y")

但我無法確認這種方式創建的遠程過程是否會持續下去。每個測試需要4個小時,我完成了這個。

相關:無限期運行Launching background tasks in a remote session that don't get killed when the session is removed