使用 powershell 等待进程退出

使用 powershell 等待进程退出

我在 F#(类似于 C#)中编写了一个小程序,它通过名称获取进程,然后通过路径过滤特定进程并等待它退出:

let processes = Process.GetProcessesByName("MyProcessName")
if (processes.Length > 0) 
    then for proc in processes do
            if (proc.MainModule.FileName = "C:\Example\MyProcessName.exe")
                then proc.WaitForExit()

但此代码仅适用于本地计算机。现在我想在远程计算机上实现相同的功能。

所以这就是我选择 PowerShell 的原因(我对它完全陌生)。

是否可以通过 powershell 中的一行来通过路径过滤进程并等待它退出?如果没有,也许您可​​以提供更长的解决方案?

我将如何在远程计算机上执行此行代码,我已经有想法了。我所需要的只是那行神奇的代码。

编辑:实际上这行应该在本地机器上工作,因为我将使用 msdeploy 传递它,它会将其作为本地命令在远程机器上执行。

答案1

Wait-Process理想情况下,你会在目标机器上 调用。详细代码见此帖子:https://stackoverflow.com/questions/18341767/powershell-check-on-remote-process-if-done-continue

答案2

花了一些时间玩 powershell 终于得到了我想要的:

powershell.exe ps | ? { $_.path -eq 'c:\windows\system32\notepad.exe' } | Foreach-object { $_.WaitForExit() }

相关内容