2015-11-04 52 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