1
+ # Requires -RunAsAdministrator
2
+
1
3
$AzureRMProfileVersion = " 0.9.8" ;
2
4
3
5
$AzureRMModules = @ {
@@ -27,12 +29,31 @@ $AzureRMModules = @{
27
29
" AzureRM.Websites" = " 0.9.8"
28
30
}
29
31
32
+ function Import-ModuleWithVersionCheck ([string ]$Name , [string ]$MinimumVersion , [string ]$Repository , [string ]$Scope )
33
+ {
34
+ $minVer = $MinimumVersion
35
+ $maxVer = " $ ( $minVer.Split (" ." )[0 ]) .9999.0"
36
+ try {
37
+ if ([string ]::IsNullOrWhiteSpace($Repository ))
38
+ {
39
+ Install-Module - Name $Name - Scope $Scope - MinimumVersion $minVer - MaximumVersion $maxVer - ErrorAction Stop
40
+ } else {
41
+ Install-Module - Name $Name - Repository $Repository - Scope $Scope - MinimumVersion $minVer - MaximumVersion $maxVer - ErrorAction Stop
42
+ }
43
+ $v = (Get-InstalledModule - Name $Name )[0 ].Version.ToString()
44
+ Write-Output " $Name $v installed..."
45
+ } catch {
46
+ Write-Warning " Skipping $Name package..."
47
+ Write-Warning $_
48
+ }
49
+ }
50
+
30
51
<#
31
52
. Synopsis
32
53
Install Azure Resource Manager cmdlet modules
33
54
34
55
. Description
35
- Installs all the available Azure Resource Manager cmdlet modules that start with "AzureRM" .
56
+ Installs all the available Azure Resource Manager cmdlet modules.
36
57
37
58
. Parameter Repository
38
59
Limit the search for "AzureRM" cmdlets in a specific repository.
@@ -43,12 +64,11 @@ $AzureRMModules = @{
43
64
function Update-AzureRM
44
65
{
45
66
param (
46
- [Parameter (Position = 0 ; Mandatory = $false )]
67
+ [Parameter (Position = 0 , Mandatory = $false )]
47
68
[string ]
48
- $Repository ;
49
-
50
- [Parameter (Position = 1 ; Mandatory = $false )]
51
- [ValidateSet (" CurrentUser" ;" AllUsers" )]
69
+ $Repository ,
70
+ [Parameter (Position = 1 , Mandatory = $false )]
71
+ [ValidateSet (" CurrentUser" , " AllUsers" )]
52
72
[string ]
53
73
$Scope )
54
74
@@ -58,33 +78,48 @@ function Update-AzureRM
58
78
}
59
79
60
80
Write-Output " Installing AzureRM modules."
61
- $minVer = $AzureRMProfileVersion
62
- $maxVer = " $ ( $args [1 ].Split(" ." )[0 ]) .9999.0"
63
- if ([string ]::IsNullOrWhiteSpace($Repository ))
64
- {
65
- Install-Module - Name AzureRM.Profile - Scope $Scope - MinimumVersion $minVer - MaximumVersion $maxVer
66
- } else {
67
- Install-Module - Name AzureRM.Profile - Repository $Repository - Scope $Scope - MinimumVersion $minVer - MaximumVersion $maxVer
68
- }
69
- $v = (Get-InstalledModule - Name AzureRM.Profile)[0 ].Version.ToString()
70
- Write-Output " AzureRM.Profile $v installed..."
81
+
82
+ Import-ModuleWithVersionCheck " AzureRM.Profile" $AzureRMProfileVersion $Repository $Scope
71
83
72
84
$result = $AzureRMModules.Keys | ForEach {
73
85
Start-Job - Name $_ - ScriptBlock {
74
- $minVer = $args [1 ]
75
- $maxVer = " $ ( $args [1 ].Split(" ." )[0 ]) .9999.0"
76
-
77
- if ([string ]::IsNullOrWhiteSpace($args [2 ]))
78
- {
79
- Install-Module - Name $args [0 ] - Scope $args [3 ] - MinimumVersion $minVer - MaximumVersion $maxVer
80
- } else {
81
- Install-Module - Name $args [0 ] - Repository $args [2 ] - Scope $args [3 ] - MinimumVersion $minVer - MaximumVersion $maxVer
82
- }
83
- $v = (Get-InstalledModule - Name $args [0 ])[0 ].Version.ToString()
84
- Write-Output " $ ( $args [0 ]) $v installed..."
85
- } - ArgumentList $_ ; $AzureRMModules [$_ ]; $Repository ; $Scope }
86
+ Import-ModuleWithVersionCheck $args [0 ] $args [1 ] $args [2 ] $args [3 ]
87
+ } - ArgumentList $_ , $AzureRMModules [$_ ], $Repository , $Scope }
86
88
87
- $AzureRMModules | ForEach {Get-Job - Name $_ | Wait-Job | Receive-Job }
89
+ $AzureRMModules.Keys | ForEach {Get-Job - Name $_ | Wait-Job | Receive-Job }
88
90
}
91
+
92
+ <#
93
+ . Synopsis
94
+ Remove Azure Resource Manager cmdlet modules
95
+
96
+ . Description
97
+ Removes all installed Azure Resource Manager cmdlet modules.
98
+ #>
99
+ function Uninstall-AzureRM
100
+ {
101
+ param (
102
+ [Parameter (Position = 0 , Mandatory = $false )]
103
+ [string ]
104
+ $Repository )
105
+
106
+ Write-Output " Uninstalling AzureRM modules."
107
+
108
+ $installedModules = Get-InstalledModule
109
+
110
+ $AzureRMModules.Keys | ForEach {
111
+ $moduleName = $_
112
+ if (($installedModules | where {$_.Name -eq $moduleName }) -ne $null ) {
113
+ Uninstall-Module - Name $_ - ErrorAction Stop
114
+ Write-Output " $moduleName uninstalled..."
115
+ }
116
+ }
117
+
118
+ if (($installedModules | where {" AzureRM.Profile" -eq $moduleName }) -ne $null ) {
119
+ Uninstall-Module - Name " AzureRM.Profile" - ErrorAction Stop
120
+ Write-Output " AzureRM.Profile uninstalled..."
121
+ }
122
+ }
123
+
89
124
New-Alias - Name Install-AzureRM - Value Update-AzureRM
90
125
Export-ModuleMember - function * - Alias *
0 commit comments