비인터랙티브 모드의 파워셸
배포에는 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에서는 작동하지 않습니다.이전 서버는 윈도우즈 서버 2003에서 실행되기 때문에 아직 모든 곳에서 Powershell 3.0으로 업그레이드할 수 없습니다.PS 2.0에서 작동하려면 어떻게 해야 합니까?
실행 대상-Force
:
Stop-Process -InputObject $prc -ErrorAction SilentlyContinue -Force
C.B.가 논평에서 제안한 바와 같이:-confirm:$false
또한 작동해야 합니다.이에 대한 근거는 다음과 같습니다.-Confirm
는 스위치 매개 변수입니다.스위치 매개 변수는 매개 변수를 후행 콜론과 값으로 지정한 경우에만 인수를 사용할 수 있습니다.
방금 아이들이 있는 디렉토리에서 Remove-Item을 사용하려고 했는데 동일한 메시지가 표시되었습니다.Remove-Item : PowerShell is in NonInteractive mode. Read and Prompt functionality is not available.
내 경우에는-Recurse
키가 도움이 되었습니다.
언급URL : https://stackoverflow.com/questions/16580723/powershell-in-noninteractive-mode
'code' 카테고리의 다른 글
Xcode 5 - DVTPlugInCompatibility에 필요한 플러그인이 없음UUID? (0) | 2023.08.11 |
---|---|
jQuery 이벤트 처리기는 항상 바인딩된 순서대로 실행합니다. 이 문제를 해결할 방법이 있습니까? (0) | 2023.08.11 |
선택적 문자열 확장자를 추가하는 방법은 무엇입니까? (0) | 2023.08.11 |
Chrome 콘솔이 열려 있는지 확인합니다. (0) | 2023.08.11 |
ER 다이어그램이 Datagrip에 관계를 표시하지 않음 (0) | 2023.08.11 |