【发布时间】:2023-04-05 06:38:02
【问题描述】:
我使用 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
}
}
我尝试停止的程序不是您在上面的脚本中看到的程序,但它们代表了我正在尝试做的事情。现在我遇到的问题是它在一台服务器上运行良好,但在另一台服务器上运行良好。在它不起作用的地方,我收到错误消息:
停止进程:Windows PowerShell 处于非交互模式。阅读和提示功能不可用。
可以在 Powershell 3.0 上运行的脚本在 Powershell 2.0 上不可以运行。我还不能在任何地方升级到 Powershell 3.0,因为旧服务器运行的是 Windows Server 2003。我怎样才能让它在 PS 2.0 上运行?
【问题讨论】:
-
你能把
get-executionpolicy和$confirpreference的值从2.0版本的服务器上贴出来吗? -
get-executionpolicy RemoteSigned $confirpreference $confirpreference 没有输出。
-
操作,我的错字:$confirmpreference ...
-
尝试将
-confirm:$false添加到停止进程cmdlet.. -
我今天可以试一试。停止过程没有问题。它适用于 -Force,它适用于 -confirm:$false 以及两者一起使用。谢谢!
标签: powershell deployment octopus-deploy