@@ -90,7 +90,7 @@ function Initialize-AzModules {
90
90
91
91
try {
92
92
$azAccountsModuleName = " Az.Accounts"
93
- $azAccountsVersion = Import-SpecificAzModule - moduleName $azAccountsModuleName - tryInstallModule:$tryInstallModule
93
+ $azAccountsVersion = Import-SpecificAzModule - moduleName $azAccountsModuleName - tryInstallModule:$tryInstallModule - minimumMajorVersion 2
94
94
Write-Verbose " '$azAccountsModuleName ' is available with version $azAccountsVersion ."
95
95
96
96
# Update-AzConfig is a part of Az.Accounts
@@ -112,11 +112,11 @@ function Initialize-AzModules {
112
112
}
113
113
114
114
$azResourcesModuleName = " Az.Resources"
115
- $azResourcesVersion = Import-SpecificAzModule - moduleName $azResourcesModuleName - tryInstallModule:$tryInstallModule
115
+ $azResourcesVersion = Import-SpecificAzModule - moduleName $azResourcesModuleName - tryInstallModule:$tryInstallModule - minimumMajorVersion 6
116
116
Write-Verbose " '$azResourcesModuleName ' is available with version $azResourcesVersion ."
117
117
118
118
$azStorageModuleName = " Az.Storage"
119
- $azStorageVersion = Import-SpecificAzModule - moduleName $azStorageModuleName - tryInstallModule:$tryInstallModule
119
+ $azStorageVersion = Import-SpecificAzModule - moduleName $azStorageModuleName - tryInstallModule:$tryInstallModule - minimumMajorVersion 4
120
120
Write-Verbose " '$azStorageModuleName ' is available with version $azStorageVersion ."
121
121
return $azAccountsVersion
122
122
} finally {
@@ -133,14 +133,17 @@ function Import-SpecificAzModule {
133
133
[string ]$moduleName ,
134
134
135
135
[Parameter ()]
136
- [switch ]$tryInstallModule
136
+ [switch ]$tryInstallModule ,
137
+
138
+ [Parameter (Mandatory = $true )]
139
+ [int ]$minimumMajorVersion
137
140
)
138
141
Trace-VstsEnteringInvocation $MyInvocation
139
142
try {
140
143
Write-Verbose " Attempting to find the latest available version of module '$moduleName '."
141
144
$module = Get-Module - Name $moduleName - ListAvailable | Sort-Object Version - Descending | Select-Object - First 1
142
145
143
- if ($module ) {
146
+ if ($module -and ( $module .Version.Major -ge $minimumMajorVersion ) ) {
144
147
Write-Verbose " Module '$moduleName ' version $ ( $module.Version ) was found."
145
148
} elseif ($tryInstallModule -eq $true ) {
146
149
Write-Verbose " Unable to find module '$moduleName ' from the module path. Installing '$moduleName ' module."
@@ -150,8 +153,8 @@ function Import-SpecificAzModule {
150
153
$module = Get-Module - Name $moduleName - ListAvailable | Sort-Object Version - Descending | Select-Object - First 1
151
154
}
152
155
153
- if (-not $module ) {
154
- throw (Get-VstsLocString - Key AZ_ModuleNotFound - ArgumentList $moduleName )
156
+ if (-not $module -or ( $module .Version.Major -lt $minimumMajorVersion ) ) {
157
+ throw (Get-VstsLocString - Key AZ_ModuleNotFound - ArgumentList $minimumMajorVersion , $ moduleName )
155
158
}
156
159
157
160
Write-Host " ##[command]Import-Module -Name $ ( $module.Path ) -Global -PassThru -Force"
@@ -223,16 +226,10 @@ function Uninstall-AzureRMModules {
223
226
Write-Verbose " Uninstalling AzureRM modules."
224
227
225
228
if ((Get-Module - ListAvailable - Name Az.Accounts) -and (Get-Command Uninstall-AzureRm - ErrorAction SilentlyContinue)) {
226
- Write-Host " ##[command]Uninstall-AzureRm"
227
- Uninstall-AzureRm
228
-
229
- Write-Verbose " Making sure all AzureRM modules are gone after the uninstall."
230
-
231
229
$azureRmModules = Get-Module - ListAvailable - Name AzureRM.* | Select-Object Name, Version
232
230
if ($azureRmModules ) {
233
- Foreach ($azureRmModule in $azureRmModules ) {
234
- Write-Verbose " '$ ( $azureRmModule ) ' AzureRM module found."
235
- }
231
+ Write-Host " ##[command]Uninstall-AzureRm"
232
+ Uninstall-AzureRm
236
233
}
237
234
else {
238
235
Write-Verbose " No AzureRM modules found."
0 commit comments