2013-02-26 11 views
7

szukam czegoś podobnego skryptu PowerShell, aby sprawdzić czy jest zainstalowany msdeploy a jeżeli tak, to jaka wersjaJak sprawdzić, która wersja Webdeploy/msdeploy jest obecnie zainstalowana?

mam uznać sprawdzenie „C: \ Program Files \ IIS” i sprawdzanie instalacji MSDeploy tam, ale czy to zawsze gwarantuje lokalizację instalacji?

muszę to do pracy na danym serwerze

+0

'msdeploy | znaleźć "Wersja" '? –

+0

@JoachimIsaksson działałoby to tylko wtedy, gdy jest ustawione w zmiennych PATH – EdmundYeung99

Odpowiedz

8

Po zainstalowaniu msdeploy (bez względu na miejsce w systemie plików), doda swoją ścieżkę instalacji do rejestru na;

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

i jego informacja o wersji;

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

... gdzie <version> jest obecnie 1, 2 lub 3 w zależności od wersji WebDeploy który został zainstalowany.

+2

. Zauważ, że 'InstallPath' i' Version' nie są podkluczami, ale raczej są wartościami w kluczu ''. (Ważne, jeśli patrzysz na to programowo.) – jpmc26

4

zależy co uważasz za „Wersja”. Według nazwy folderu "c: \ Program Files \ IIS \ Microsoft Web Deploy V3", wersja ma 3, ale jeśli uruchomisz msdeploy.exe, wersja jest 7.X

0

można wykorzystywać następujące PowerShell snippet:

$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; 
     } 
    } 
} 

Jeśli owinąć go w bloku skryptu to można nazwać w sesji zdalnej.

Powiązane problemy