msdeployがインストールされているかどうか、インストールされている場合はどのバージョンかを確認するPowershellスクリプトのようなものを探しています
「c:\ ProgramFiles \ IIS」をチェックし、そこでMSDeployのインストールをチェックすることを検討しましたが、これは常にインストール場所であることが保証されていますか?
特定のサーバーマシンで動作するためにこれが必要です
msdeployがインストールされているかどうか、インストールされている場合はどのバージョンかを確認するPowershellスクリプトのようなものを探しています
「c:\ ProgramFiles \ IIS」をチェックし、そこでMSDeployのインストールをチェックすることを検討しましたが、これは常にインストール場所であることが保証されていますか?
特定のサーバーマシンで動作するためにこれが必要です
がmsdeploy
インストールされると (ファイル システムのどこにいても)、そのインストール パスが次のレジストリに追加されます。
HKLM\Software\Microsoft\IIS Extensions\MSDeploy\<version>\InstallPath
およびそのバージョン情報。
HKLM\Software\Microsoft\IIS Extensions\MSDeploy\<version>\Version
...<version>
インストールした WebDeploy のバージョンに応じて、現在 1、2、または 3 です。
「バージョン」と見なすものによって異なります。"c:\Program Files\IIS\Microsoft Web Deploy V3" というフォルダー名で、バージョンは 3 ですが、msdeploy.exe を実行すると、バージョンは 7.X になります。
これは、PowerShell スクリプトで行ったことです。
$WebDeployInstalled = Get-WmiObject Win32_Product | ? {$_.Name -like '*Microsoft Web Deploy*'}
if ($WebDeployInstalled -eq $null)
{
$msg = "Microsoft Web Deploy is not found on this machine."
Write-host -BackgroundColor Red -ForegroundColor White $msg
return
}
else
{
$MSDeployPath = Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\*" | Select-Object InstallPath
$MSDeployPath = $MSDeployPath.InstallPath
}
HTH
次の 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;
}
}
}
スクリプト ブロックにラップすると、リモート セッションで呼び出すことができます。