我使用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
}
}
我试图停止的程序不是以上脚本中所看到的那些,但它们代表了我想要做的事情。现在我的问题是,在一个服务器上它能正常运行,但在另一个服务器上却不能。在无法运行的服务器上,我会收到以下错误信息:
Stop-Process : Windows PowerShell处于非交互模式。读取和提示功能不可用。
那个能正常运行的脚本在Powershell 3.0上运行,而不能正常运行的脚本在Powershell 2.0上运行。由于旧服务器使用Windows Server 2003,我无法立即升级到Powershell 3.0。有什么办法可以让它在PS 2.0上工作?
get-executionpolicy
和$confirpreference
的值? - CB.