2013-02-26 3 views
7

msersploy가 설치되어 있는지 확인하기 위해 Powershell 스크립트와 같은 것을 찾고 있는데현재 설치된 webdeploy/msdeploy 버전을 확인하는 방법은 무엇입니까?

"c : \ Program Files \ IIS"를 검사하고 거기에 MSDeploy 설치가 있는지 확인했습니다. 그러나 이것은 항상 설치 위치로 보장됩니까?

특정 서버 컴퓨터에서 작동하려면이 파일이 필요합니다.

+0

msdeploy | "버전"을 찾으시겠습니까? –

+0

@JoachimIsaksson 이것은 PATH 변수에 설정된 경우에만 작동합니다. – EdmundYeung99

답변

8

msdeploy이 설치된 경우 파일 시스템에서) 설치 경로를 레지스트리에 추가합니다.

HKLM\Software\Microsoft\IIS Extensions\MSDeploy\<version>\InstallPath 

및 해당 버전 정보. <version>가 설치 한 WebDeploy 버전에 따라 현재 1, 2 또는 3

HKLM\Software\Microsoft\IIS Extensions\MSDeploy\<version>\Version 

.... 당신이 스크립트 블록에 싸서 경우 원격 세션에서 호출 할 수 있습니다

$installPath = $env:msdeployinstallpath 
if(!$installPath){ 
    $keysToCheck = @('hklm:\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\3','hklm:\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\2','hklm:\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\1') 
    foreach($keyToCheck in $keysToCheck) { 
     if(Test-Path $keyToCheck){ 
      $installPath = (Get-itemproperty $keyToCheck -Name InstallPath -ErrorAction SilentlyContinue | select -ExpandProperty InstallPath -ErrorAction SilentlyContinue) 
     } 
     if($installPath) { 
      break; 
     } 
    } 
} 

:

+2

'InstallPath'와'Version'은 하위 키가 아니라' '키의 값입니다. (프로그래밍 방식으로이 프로그램을 살펴 보는 경우 중요합니다.) – jpmc26

4

"버전"고려 사항에 따라 다릅니다. 폴더 이름이 "c : \ Program Files \ IIS \ Microsoft Web Deploy V3"인 경우 버전은 3이지만 msdeploy.exe를 실행하면 버전은 7.X

0

는 다음과 같은 PowerShell을 니펫을 사용할 수 있습니다.