2013-02-26 23 views
7

msdeployがインストールされているかどうかを確認する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はスニペットを使用することができます。

関連する問題