Как узнать, какая версия webdeploy / msdeploy в настоящее время установлена?
Я ищу что-то вроде сценария Powershell, чтобы проверить, установлен ли msdeploy, и если да, то какая версия
Я думал проверить "c:Program FilesIIS" и проверка установки MSDeploy там, но всегда ли это гарантируется местом установки?
Мне нужно, чтобы это работало на любом сервере
3 ответов
, когда msdeploy
установлен (независимо от того, где в файловой системе), он добавит свой путь установки в реестр по адресу;
HKLM\Software\Microsoft\IIS Extensions\MSDeploy\<version>\InstallPath
и информацию о его версии;
HKLM\Software\Microsoft\IIS Extensions\MSDeploy\<version>\Version
...где <version>
В настоящее время 1, 2 или 3 в зависимости от установленной версии WebDeploy.
зависит от того, что вы считаете "версия". По имени папки "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','hklm:\SOFTWARE\Microsoft\IIS Extensions\MSDeploy','hklm:\SOFTWARE\Microsoft\IIS Extensions\MSDeploy')
foreach($keyToCheck in $keysToCheck) {
if(Test-Path $keyToCheck){
$installPath = (Get-itemproperty $keyToCheck -Name InstallPath -ErrorAction SilentlyContinue | select -ExpandProperty InstallPath -ErrorAction SilentlyContinue)
}
if($installPath) {
break;
}
}
}
Если вы обернете его в блок сценария, то вы можете вызвать его в удаленном сеансе.