如果尚未安装,仅安装 PowerShell PackageProvider 和 Module

Pat*_*lan 4 sql-server powershell octopus-deploy

我在 Octopus Deploy 中运行了以下 Powershell 脚本。

但是,如果它们尚未安装,我只希望它们安装。

我安装了它们,最好它也只会在它们低于某个版本时安装它们。

有人可以建议什么被认为是这样做的最佳方法吗?

Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Confirm:$False -Force 

Install-Module -Name SqlServer -AllowClobber -Confirm:$False -Force  
Run Code Online (Sandbox Code Playgroud)

Owa*_*sau 15

这样的事情应该工作:

if (Get-Module -ListAvailable -Name SqlServer) {
    Write-Host "SQL Already Installed"
} 
else {
    try {
        Install-Module -Name SqlServer -AllowClobber -Confirm:$False -Force  
    }
    catch [Exception] {
        $_.message 
        exit
    }
}


if ((Get-PackageProvider -Name NuGet).version -lt 2.8.5.201 ) {
    try {
        Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Confirm:$False -Force 
    }
    catch [Exception]{
        $_.message 
        exit
    }
}
else {
    Write-Host "Version of NuGet installed = " (Get-PackageProvider -Name NuGet).version
}
Run Code Online (Sandbox Code Playgroud)