Я должен остановить браузер из сценария PowerShell, который я делаю путем передачи по каналу его в
Stop-Process -Force
Однако это является очень резким. Когда браузер перезапущен, он обнаруживает, что не закрывался чисто и пытается перезапустить предыдущую сессию. Есть ли некоторый способ, которым я могу сказать этому завершать работу себя корректно? ("Существует два способа, которыми мы можем сделать это..."),
Попробуйте имитировать закрытие приложения пользователем:
(Get-Process -Id 10024).CloseMainWindow()
Кейт Хилл уже предложил использовать 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()
}