@@ -2,19 +2,49 @@ function RemovePreInstalledModule {
2
2
[CmdletBinding ()]
3
3
param (
4
4
[Parameter (Mandatory , Position = 0 )]
5
- [Alias (" ModuleName" )]
6
5
[ValidateNotNullOrEmpty ()]
7
- [string ] $Name
6
+ [hashtable ] $ModuleToRemove
8
7
)
9
8
10
- # Remove Az modules
11
- Get-Module - Name $Name * - ListAvailable | ForEach-Object {
12
- $moduleDirectory = $_.Path | Split-Path | Split-Path
13
- if (Test-Path - LiteralPath $moduleDirectory ) {
14
- Remove-Item - LiteralPath $moduleDirectory - Recurse - Force
9
+ $ModuleToRemove.Keys | ForEach-Object {
10
+ $moduleName = $_
11
+ $moduleVersion = $ModuleToRemove [$moduleName ]
12
+
13
+ Write-Host " ##[group]Processing module $moduleName "
14
+
15
+ Write-Host " All installed modules with name $moduleName :"
16
+ Get-Module - Name $moduleName - ListAvailable
17
+ Write-Host
18
+
19
+ $modules = Get-Module - Name $moduleName - ListAvailable | Where-Object Version -gt ([Version ]$moduleVersion )
20
+ $modules | ForEach-Object {
21
+ $installedModule = $_
22
+ $installedModuleName = $installedModule.Name
23
+
24
+ Write-Host " ##[section]Unqualified pre-installed module is $installedModuleName with version $ ( $installedModule.Version ) ."
25
+ $installedModule | Format-List
26
+
27
+ $moduleDirectory = $installedModule.Path | Split-Path | Split-Path
28
+ if (Test-Path - Path $moduleDirectory ) {
29
+ Write-Host " ##[section]Start to remove module located in $moduleDirectory ."
30
+ Remove-Item - Path $moduleDirectory - Recurse - Force - ErrorAction SilentlyContinue
31
+ Write-Host " ##[section]Module $installedModuleName has been removed."
32
+ Write-Host
33
+ }
15
34
}
35
+
36
+ Write-Host " ##[endgroup]"
37
+ Write-Host
16
38
}
17
39
}
18
40
19
- RemovePreInstalledModule - Name Az
20
- RemovePreInstalledModule - Name AzureRM
41
+ $modulesToRemove = @ {
42
+ " Az" = " 0.0.0.0" ;
43
+ " Az.*" = " 0.0.0.0" ;
44
+ " Azure" = " 0.0.0.0" ;
45
+ " Azure.*" = " 0.0.0.0" ;
46
+ " AzureRM" = " 0.0.0.0" ;
47
+ " AzureRM.*" = " 0.0.0.0" ;
48
+ " Pester" = " 4.10.1.0"
49
+ }
50
+ RemovePreInstalledModule - ModuleToRemove $modulesToRemove
0 commit comments