我正在使用PSExec(在我的一个powershell脚本中调用)远程运行远程计算机上的可执行文件并等到它的执行完成(使用Start-Process cmd上的-Wait标志,启动PSExec)。
由于某种原因,可执行文件正常完成(进程在远程计算机上不再运行,它创建的所有输出文件都存在,来自该可执行文件的所有日志文件都表示一切正常,并且正确完成而没有错误),但是PSExec似乎永远不会退出。我已经将PSExec的std和err输出重定向到2个文件,并且它们只显示了如果执行确实顺利而没有挂起它们应该做的部分内容。
现在,我在powershell脚本的几个地方使用PSExec,这只发生在一个特定的实例中。我能想到的唯一不同的是,可执行文件需要大约8小时才能完成,而所有其他地方我使用PSExec远程可执行文件/脚本最多需要20-30分钟才能完成。
PSExec是否存在某种超时?我错过了一面旗帜吗?
作为参考,这里是powershell行,我实际上称之为PSExec,这导致了这个问题:
$PSExecRunTestsParams = "\\$parsedTestRunnerVM -h -n 30 -accepteula -u $user -p $pass -w $localTestRunnerDirPath $localTestRunnerExePath 3"
Start-Process -FilePath $PSExecPath -ArgumentList $PSExecRunTestsParams -Wait -RedirectStandardOutput $tempStdOutLog -RedirectStandardError $tempStdErrLog
需要注意的是,此后的powershell行也不会被调用。