powershell 스크립트를 성공적으로 실행 한 후 PsExec이 중단되는 이유는 무엇입니까?


12

스크립트는 매우 간단합니다. 단순히 Windows 서비스를 시작하려고합니다. 대상 컴퓨터에서 실행하면 로컬에서 제대로 작동합니다. 스크립트는 PsExec을 통해 수행 될 때 실제로 잘 실행되며 CMD 프롬프트에서 "enter"키를 누르기 전까지는 반환되지 않습니다. 이것은 TeamCity에서 호출되기 때문에 문제이며, PsExec이 돌아 오기를 기다리는 동안 에이전트를 정지시킵니다.

나는 다음을 시도했다.

  • Powershell 스크립트 끝에 exit및 추가하기exit 0
  • 이 SF 질문< NUL 의 답변에 따라 PsExec 호출 끝에 a 추가
  • >stdout 리디렉션 추가

이것이 실제로 psexec를 호출하는 방법입니다.

psexec \\target -u domain\username -p password powershell c:\path\script.ps1

내가 무엇을하든 cmd 프롬프트에서 로컬로 할 때까지 중단됩니다. Enter 키를 누르면 메시지가 나타납니다.

powershell exited on target with error code 0.

답변:


11

이것이 일반적인 문제임이 밝혀졌습니다. 여기서 해결책을 찾았습니다 . 기본적으로 cmd를 사용하여 stdin의 일부 데이터를 파이프하면 실행 후 (powershell이 ​​아닌 cmd를 통해 실행되기 때문에) 제대로 반환됩니다.

예:

psexec \\target -u domain\username -p password cmd /c "echo . | powershell c:\path\script.ps1"

명령 줄-사용자 지정 스크립트 또는 명령 줄-실행 가능 (TeamCity)으로 설정되어 있습니까?
Wojtek Turowicz

확인 실행 파일로 설정했으며 도움이되었습니다. 고맙습니다, 내가 진단하는데 하루를 보냈습니다. 말씀을 전하십시오!
Wojtek Turowicz

하루 한 문제는 ... 반환
보이 테크 Turowicz에게

11

답변이 이미 늦어 질 것이라는 것을 알고 있습니다. 그렇지 않다면 향후 방문자에게 유용 할 것입니다.

STDIN은 정지 상태에서 올 수 있으려면 powershell 실행에서 방향을 재지 정해야합니다 (STDIN에서 대기). 이 작업을 수행 할 수 있도록 -inputformat none

powershell -inputformat none -File powershell_script.ps1 작동합니다.

확인-https: //connect.microsoft.com/PowerShell/feedback/details/572313/powershell-exe-can-hang-if-stdin-is-redirected


이 작업뿐만 아니라 허용되는 답변이 작동하는 이유도 설명합니다. 감사!
jpaugh

5
psexec \\target -u domain\username -p password -d powershell c:\path\script.ps1

또한 문제를 해결하십시오.

-dpsexec플래그 는 비 대화식 방식으로 "run and exit"와 같습니다.

-d 응용 프로그램이 종료 될 때까지 기다리지 않습니다.

비대화 형 응용 프로그램에만 사용하십시오.


0

Powershell이 ​​종료되지 않습니다. 이 명령 줄을 사용해보십시오

Powershell -command script.ps1

0

psexecVBS 스크립트를 사용하여 실행 중이 었으며 최고 (EX :)로 표시된 솔루션은 psexec \\target -u domain\username -p password cmd /c "echo . | powershell c:\path\script.ps1"각 3 회 정도 동안 만 작동했습니다. 계속 파고 있었고 각 스위치에 대한 설명을 찾았습니다.

나는 "-s"를 시도하기로 결정했고 매번 나를 위해 일한 것은 다음과 같습니다.

call C:\psexec.exe %SERVER_NAME% -u %USERNAME% -p %PASSWORD% -h -s cscript %pathTomyVBSscript%
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.