我正在尋找像Powershell腳本來檢查msdeploy是否安裝,如果是,什麼版本如何找出當前安裝的webdeploy/msdeploy版本?
我已經考慮檢查「c:\ Program Files \ IIS」並檢查MSDeploy安裝那裏,但是這總是保證是安裝位置?
我需要這個任何給定的服務器計算機
我正在尋找像Powershell腳本來檢查msdeploy是否安裝,如果是,什麼版本如何找出當前安裝的webdeploy/msdeploy版本?
我已經考慮檢查「c:\ Program Files \ IIS」並檢查MSDeploy安裝那裏,但是這總是保證是安裝位置?
我需要這個任何給定的服務器計算機
安裝了msdeploy
(無論在何處在文件系統中),它會將其安裝路徑添加到註冊表處;
HKLM\Software\Microsoft\IIS Extensions\MSDeploy\<version>\InstallPath
及其版本信息;
HKLM\Software\Microsoft\IIS Extensions\MSDeploy\<version>\Version
...其中<version>
目前是1,2或3,具體取決於您所安裝的WebDeploy版本。
請注意,'InstallPath'和'Version'不是子項,而是它們是'
取決於你認爲什麼是「版」上運行。通過文件夾名稱「c:\ Program Files \ IIS \ Microsoft Web Deploy V3」,版本爲3,但是如果運行msdeploy.exe,則版本爲7.X
您可以使用下面的PowerShell的片段:
$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;
}
}
}
如果你把它包裝成腳本塊,那麼你可以調用它在遠程會話。
'msdeploy |找到「版本」? – 2013-02-26 19:54:17
@JoachimIsaksson這隻會在PATH變量中設置時才起作用 – EdmundYeung99 2013-02-26 20:17:23