2013-02-26 18 views
7

Sto cercando qualcosa di simile a uno script PowerShell per verificare se è installato msdeploy e se lo è, quale versioneCome scoprire quale versione di webdeploy/msdeploy è attualmente installata?

Ho pensato di controllare "c: \ Program Files \ IIS" e controllo per impianti MSDeploy lì, ma è sempre garantito il luogo di installazione?

ho bisogno di questo per lavorare su qualsiasi macchina server specificato

+0

'msdeploy | trova "Versione" '? –

+0

@JoachimIsaksson funziona solo se è impostato nelle variabili PATH – EdmundYeung99

risposta

8

Se è installato msdeploy (non importa dove nel file system), aggiungerà il suo percorso di installazione al registro in;

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

e le informazioni sulla versione a;

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

... dove <version> è attualmente 1, 2 o 3 a seconda della versione WebDeploy si è installato.

+2

Nota che 'InstallPath' e' Version' non sono sottochiavi, ma piuttosto sono valori sulla chiave ''. (Importante se stai guardando questo a livello di programmazione.) – jpmc26

4

dipende da ciò che si considera "versione". Con il nome della cartella "c: \ Programmi \ IIS \ Microsoft Web Deploy V3", la versione è 3, ma se si esegue msdeploy.exe, la versione è 7.X

0

È possibile utilizzare i seguenti 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; 
     } 
    } 
} 

Se si avvolgono in blocco di script, allora si può chiamare in sessione remota.

Problemi correlati