Skip to content

Commit 107e43e

Browse files
committed
Added Uninstall to AzureRM
1 parent 24d86ec commit 107e43e

File tree

2 files changed

+64
-29
lines changed

2 files changed

+64
-29
lines changed

tools/AzureRM/AzureRM.psd1

32 Bytes
Binary file not shown.

tools/AzureRM/AzureRM.psm1

Lines changed: 64 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#Requires -RunAsAdministrator
2+
13
$AzureRMProfileVersion = "0.9.8";
24

35
$AzureRMModules = @{
@@ -27,12 +29,31 @@ $AzureRMModules = @{
2729
"AzureRM.Websites" = "0.9.8"
2830
}
2931

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+
3051
<#
3152
.Synopsis
3253
Install Azure Resource Manager cmdlet modules
3354
3455
.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.
3657
3758
.Parameter Repository
3859
Limit the search for "AzureRM" cmdlets in a specific repository.
@@ -43,12 +64,11 @@ $AzureRMModules = @{
4364
function Update-AzureRM
4465
{
4566
param(
46-
[Parameter(Position=0; Mandatory = $false)]
67+
[Parameter(Position=0, Mandatory = $false)]
4768
[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")]
5272
[string]
5373
$Scope)
5474

@@ -58,33 +78,48 @@ function Update-AzureRM
5878
}
5979

6080
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
7183

7284
$result = $AzureRMModules.Keys | ForEach {
7385
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 }
8688

87-
$AzureRMModules | ForEach {Get-Job -Name $_ | Wait-Job | Receive-Job }
89+
$AzureRMModules.Keys | ForEach {Get-Job -Name $_ | Wait-Job | Receive-Job }
8890
}
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+
89124
New-Alias -Name Install-AzureRM -Value Update-AzureRM
90125
Export-ModuleMember -function * -Alias *

0 commit comments

Comments
 (0)