Я использую Octopus для наших развертываний. У меня есть проблема с одним из сценариев Powershell для управления развертыванием:
# stops running processes
$processes = @("Notepad",
"Firefox")
foreach ($process in $processes)
{
$prc = Get-Process -Name $process -ErrorAction SilentlyContinue
if (-not($prc -eq $null))
{
Write-Host "Stopping " $prc.ProcessName
Stop-Process -InputObject $prc -ErrorAction SilentlyContinue
}
}
Программы, которые я пытаюсь остановить, не те, что вы видите в script выше, но они представляют собой то, что я пытаюсь сделать. Теперь проблема, с которой я связан, заключается в том, что она хорошо работает на одном сервере, но не на другом. Если он не работает, я получаю сообщение об ошибке:
Стоп-процесс: Windows PowerShell находится в режиме NonInteractive. Функции чтения и запроса недоступны.
script, который работает на Powershell 3.0, тот, который не работает на Powershell 2.0. Я не могу обновить до Powershell 3.0 везде, потому что старые серверы работают с Windows Server 2003. Как я могу заставить его работать на PS 2.0?