2016-07-20 3 views
1

msiexec.exe를 사용하여 응용 프로그램을 설치하기 위해 powershell 스크립트를 실행하려고합니다.설치가 완료 될 때까지 msiexec을 대기로 만듭니다.

msiexec.exe를 /는 "C : \ 사용자 \ tempuser \ 바탕 화면 \ AppInstall.msi"

그래서 내가 설치 명령의 나머지 부분에 이동하기 전에 완료 할/수동 대기 전체 자동화 프로세스를 엉망으로 만드는 것을 방지하기 위해.

일단 스크립트를 실행하면 모든 msiexec 옵션을 보여주는 Windows 설치 관리자 메뉴가 나타납니다. 줄의 끝 부분에서 wait 매개 변수를 잘못 사용했다고 생각합니다. 이미 많은 솔루션을 검색하는 데 많은 시간을 들였는데 ... 도움이 되었으면합니다.

답변

1

당신은 당신의 요구에 맞게

$myJob = Start-Job {[your msiexec call]} 
Wait-Job $myJob 

또는

$params = @{ 
     "FilePath" = "$Env:SystemRoot\system32\msiexec.exe" 
     "ArgumentList" = @(
     "/x" 
     "$($productCodeGUID)" 
     "/qn" 
     "REMOVE=ALL" 
     "/norestart" 
     ) 
     "Verb" = "runas" 
     "PassThru" = $true 
    } 

    $uninstaller = start-process @params 
    $uninstaller.WaitForExit() 

params을 조정할 수 있습니다. 필자는 긴 코드에서 인수를 읽기 쉽게 만드는 두 번째 방법을 좋아합니다.

프로세스 또는 작업으로 실행하면 아무런 차이가 없지만 필요한 경우 가장 적합한 것을 선택하십시오.

관련 문제