使用后台进程终止invoke-command启动远程作业的简单方法是什么?
我踢远程PS脚本来运行旧版exe文件,需要一种方法来终止该过程。
我将首先使用停止作业,但在阅读时它只适用于本地进程。
然后我将使用Remove-job -force命令,但如果我理解正确,它就无法终止运行进程直到它完成(再次我的远程ps脚本将启动另一个进程来运行exe文件)。
我正在阅读我可以使用wmi terminate命令终止进程,但我不知道如何获取远程进程的PID(我不能使用名称,因为我可以杀死其他用户的进程)
实现目标的最佳途径是什么?
我的脚本看起来像这样:
invoke-command -computername server1,server2,server3..etc -script-block {my.exe} -asjob
loop to wait for all processes to complete and report progress
check for CTRL-C press and kill all remote instances on {my.exe}
答案 0 :(得分:0)
查看此答案,您可以将启动过程命令添加到脚本块并返回pid或将其保存到文本文件中以供稍后参考。
答案 1 :(得分:0)
今天上午从工作中检查好了,这可以从调用脚本中正常工作:
get-job | remove-job -force
我对MSDN doc感到困惑,他说:
When you stop a background job, Windows PowerShell **completes** all tasks that are pending in that job queue and then ends the job