2012-08-03 4 views
2

blob에서 실행 파일을 다운로드하고 설치를 진행하는 webrole의 시작 작업이 있습니다.Azure 시작 작업, 다른 모든 작업이 완료 될 때까지 기다림

.cmd 파일에서 파일을 다운로드하는 파워 쉘 스크립트를 시작한 다음 .cmd에서 파일을 시작합니다.

게시가 완료된 후 RDP를 통해 수동으로 실행하면 스크립트가 제대로 작동합니다.

그러나 시작 스크립트로 실행하면 때로는 () 다른 지점에서 오류가 발생합니다.

taskTypebackground으로 설정됩니다.

마지막 시간, 오류가 PowerShell가 존재하지 않는 명령 ... 또한

, 나는 나의 PS 스크립트를 실행하기 전에 powershell -command set-executionpolicy unrestricted를 사용했다, 그러나 나는 다른 작업이 설정을 재설정하고 광산이 실패 할 수 있음을 here 읽기 .

꽤 혼란 스럽습니다.

은 그래서 제가 시작 나의 전에 수행하는 다른 모든 작업을 기다릴 수 있다면,이 문제

내가 어떤 프로세스가 실행되고 있는지 확인하고 그것을 기다릴 수도있을 것 같군요

의 이러한 종류를 제거하는 것이라고 생각한다 끝내지 만, 나는 점검 할 단서가 없다.

아니면 다른 해결책이 있습니다.

는 ~ 편집 ~

나는 배치 파일로 인해 발생할 수 있습니다 존재하지 않는 PowerShell에 대한 오류가 UTF-8 비주얼 스튜디오로 저장되고 그 here를 참조하십시오. 메모장에서 처음부터 다시 쓰고 ++로 저장하는지 확인했습니다. 그런 다음 같은 오류가 발생합니다. 전체 메시지는 다음과 같습니다

'PowerShell은'내부 또는 외부 명령, 실행할 수있는 프로그램, 또는 배치 파일이 아닙니다.

다시 스크립트는 원격 데스크톱의 명령 줄에서 완벽하게 실행됩니다.

+0

'taskType'을 ** simple **에서 ** background **로 변경할 수 있습니까? RDP는 ** 배경 **을 통해 사용 설정되므로이 문제가 발생할 수 있습니다. – SliverNinja

+0

'taskType'은 이미'background'로 설정되어 있습니다, 나는 그것을 언급하는 것을 잊었습니다. – Johnny5

+0

설치 하시겠습니까? IIS에 기능을 추가합니까? IIS를 부트 스트랩하는 IISConfigurator.exe라는 프로세스가 있지만 설치자와 함께 무엇을 시도하려고하는지에 대해 충분한 질문이 없습니다. –

답변

0

끝내야하는 스크립트의 끝에서 환경 변수를 설정 한 다음, 종속성을 기다리는 스크립트에서 환경 변수가 설정 될 때까지 반복하고 그 활동을 시작할 수 있습니다.

단일 powershell 스크립트에서 모든 것을 실행하고 설치 프로그램 명령문에서 '-asjob'스위치를 사용하여 'wait-job'cmdlet을 사용하여 작업이 완료 될 때까지 차단할 수 있습니다. Powershell은 또한 '?!' 마지막 명령문이 올바르게 실행되도록하는 연산자.

+0

문제는 내가 다른 작업을 제어 할 수 없다는 것입니다. 예를 들어, 원격 데스크톱의 설정. 그것은 MS 코드입니다. – Johnny5

0

인코딩 문제로 인해 발생할 수 있습니다. this answer에서 언급했듯이 ASCII에 파일을 저장하여 스크립트를 올바르게 해석해야합니다.링크 된 답변에서

:

는 VS 2012 궁극적으로 whatever.cmd 파일을 엽니 다. 대화 상자에서 File-> whatever.cmd를 저장 ->을 클릭하십시오. [저장] 버튼 옆에 작은 화살표가 있습니다. 인코딩과 함께 저장 옵션이있는 메뉴가 나타납니다.

선택하십시오. 이제 사용 가능한 인코딩 목록에서 "US-ASCII Codepage 20127"을 선택하십시오.

관련 문제