有没有一种使用Windows PowerShell停止进程的温和方法?

Cha*_*son 15 powershell

我必须从PowerShell脚本中停止浏览器,我将它通过管道输入

Stop-Process -Force
Run Code Online (Sandbox Code Playgroud)

但是,这是非常突然的.重新启动浏览器时,它会检测到它没有干净地关闭,并尝试重新启动上一个会话.有什么方法可以告诉它优雅地关闭自己?("我们有两种方法可以做到这一点......")

Kei*_*ill 12

尝试此操作来模拟关闭应用的用户:

(Get-Process -Id 10024).CloseMainWindow()
Run Code Online (Sandbox Code Playgroud)


Rom*_*min 11

Keith Hill已经提议使用CloseMainWindow().但它只是一个关闭的邀请,仍然可能需要一些用户交互,例如应用程序可能会显示一些对话框以保存某些内容等.如果调用脚本确实希望退出进程,我使用此模式:

# close the window and wait for exit
$_ = Get-Process -Id 12345
[void]$_.CloseMainWindow()
if (!$_.HasExited) {
    Write-Host "Waiting for exit of Pid=$($_.Id)..."
    $_.WaitForExit()
}
Run Code Online (Sandbox Code Playgroud)