У меня есть скрипт ниже, но, похоже, он не уничтожит дочерние процессы.Как убить дочерние процессы?
Когда он запускается, он выглядит хорошо, но затем остаются диалоговые окна, а затем, когда я проверяю диспетчер задач, исходные процессы все еще работают.Что заставляет меня задуматься, правильно ли работает скрипт.Другая странная часть этого заключается в том, что, естественно, я вижу, что эти процессы (программы .exe) работают на панели задач, но после запуска скрипта они выглядят так, как будто они не запущены.Но опять же, я проверяю диспетчер задач и, конечно же, они все еще работают.
$ErrorActionPreference = "SilentlyContinue"
Stop-Transcript | Out-Null
$ErrorActionPreference = "Continue"
Start-Transcript -Path C:\Scripts\Errors\errors.log -Append
$process = Get-Process -Name "IVR1","IVR2","IVR3"
$IVR1path = "C:\IVR1"
$IVR2path = "C:\IVR2"
$IVR3path = "C:\IVR3"
if ($process) {
$Process | Stop-Process -Force
Start-Sleep -s 5
cd $IVR1path
Start-Process ".\IVR1.exe"
cd IVR2path
Start-Process ".\IVR2.exe"
cd IVR3path
Start-Process ".\IVR3.exe"
cd ..
cd ..
$From = "IVR1@example.com.au"
$To = "myemail@example.com.au"
$cc = "myemail@example.com.au"
$Subject = "**TEST** - IVR1 has been recovered"
$Body = "The IVR has been successfully recovered"
$SMTPServer = "mail.example.com.au"
Send-MailMessage -From $From -to $To -cc $cc -Subject $Subject -Body $Body -SmtpServer $SMTPServer
Stop-Transcript
}
Кто-нибудь есть какие-либо предложения?Может ли это быть из-за того, что дочерние процессы не были уничтожены или исходный процесс зависал?