In dit artikel wordt uitgelegd hoe u een oudere versie van Azure PowerShell verwijdert of deze volledig van uw systeem verwijdert. Als u hebt besloten om Azure PowerShell volledig te verwijderen, stellen we het op prijs als u ons via de cmdlet Send-Feedback feedback geeft. Als u een bug tegenkomt, zouden we het waarderen als u een GitHub-probleem indient, zodat de bug kan worden verholpen.
De Az PowerShell-module verwijderen uit MSI
Als u de Az PowerShell-module hebt geïnstalleerd met het MSI-pakket, moet u deze verwijderen via het Windows-systeem, niet via PowerShell.
Platform
Instructies
Windows 10
Instellingen-apps > starten >
Windows 7 Windows 8
Programma's > > van het Configuratiescherm > starten om een programma te verwijderen
In dit scherm ziet u Azure PowerShell in de lijst met programma's staan. Dit is de app die u moet verwijderen. Als u dit programma niet vermeld ziet staan, hebt u geïnstalleerd via PowerShellGet en moet u de volgende reeks instructies volgen.
De Az PowerShell-module verwijderen uit PowerShellGet
Gebruik de cmdlet Uninstall-Module om de Az-modules te verwijderen. Met Uninstall-Module wordt echter maar één module verwijderd. Als u de Az PowerShell-module volledig wilt verwijderen, moet u elke module afzonderlijk verwijderen. Het verwijderen kan ingewikkeld zijn als u meerdere versies van Azure PowerShell hebt geïnstalleerd.
Als u wilt controleren welke versies van de Az PowerShell-module er zijn geïnstalleerd, voert u de volgende opdracht uit:
PowerShell
Get-InstalledModule -Name Az -AllVersions
Output
Version Name Repository Description
------- ---- ---------- -----------
3.8.0 Az PSGallery Microsoft Azure PowerShell
4.1.0 Az PSGallery Microsoft Azure PowerShell
Het volgende script vraagt in PowerShell Gallery een lijst op met afhankelijke submodules. Daarna verwijdert het script de juiste versie van elke submodule. U moet beheerderstoegang hebben om dit script uit te voeren in een ander bereik dan Process of Current User.
Azure PowerShell
functionUninstall-AzModule {
[CmdletBinding(SupportsShouldProcess)]
param(
[ValidateNotNullOrEmpty()]
[ValidateSet('Az','AzureRM','Azure')]
[string]$Name = 'Az',
[Parameter(Mandatory)]
[string]$Version,
[switch]$AllowPrerelease
)
$Params = @{}
if ($PSBoundParameters.AllowPrerelease) {
$Params.AllowPrerelease = $true
}
$IsAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] 'Administrator')
if (-not(Get-InstalledModule -Name$Name -RequiredVersion$Version -ErrorAction SilentlyContinue -OutVariable RootModule @Params)) {
Write-Warning -Message"Uninstall aborted. $Name version $Version not found."
} elseif (($RootModule.InstalledLocation -notlike"*$env:USERPROFILE*") -and ($IsAdmin -eq$false)) {
Write-Warning -Message"Uninstall aborted. $Name version $Version exists in a system path. PowerShell must be run elevated as an admin to remove it."
} elseif ((Get-Process -Name powershell, pwsh -OutVariable Sessions -ErrorAction SilentlyContinue).Count -gt1) {
Write-Warning -Message"Uninstall aborted. Please close all other PowerShell sessions before continuing. There are currently $($Sessions.Count) PowerShell sessions running."
} else {
Write-Verbose -Message'Creating list of dependencies...'$target = Find-Module -Name$Name -RequiredVersion$Version @Params
$AllModules = @([pscustomobject]@{
Name = $Name
Version = $Version
})
$AllModules += foreach ($dependencyin$target.Dependencies) {
switch ($dependency.keys) {
{$_ -contains'RequiredVersion'} {$UninstallVersion = $dependency.RequiredVersion; break}
{$_ -contains'MinimumVersion'} {$UninstallVersion = $dependency.MinimumVersion; break}
}
[pscustomobject]@{
Name = $dependency.Name
Version = $UninstallVersion
}
}
[int]$i = 100 / $AllModules.Count
foreach ($modulein$AllModules) {
Write-Progress -Activity'Uninstallation in Progress' -Status"$i% Complete:" -PercentComplete$i$i++
if (Get-InstalledModule -Name$module.Name -RequiredVersion$module.Version -ErrorAction SilentlyContinue @Params) {
Write-Verbose -Message"Uninstalling $($module.Name) version $($module.Version)"Remove-Module -FullyQualifiedName @{ModuleName=$module.Name;ModuleVersion=$module.Version} -ErrorAction SilentlyContinue
try {
if ($PSCmdlet.ShouldProcess("$($module.Name) version $($module.Version)")) {
Uninstall-Module -Name$module.Name -RequiredVersion$module.Version -Force -ErrorAction Stop @Params
}
$State = 'Uninstalled'
} Catch {
$State = 'Manual uninstall required'Write-Verbose -Message"$($module.Name) version: $($module.Version) may require manual uninstallation."
}
} else {
$State = 'Not found'Write-Verbose -Message"$($module.Name) version: $($module.Version) not found."
}
if (-not$PSBoundParameters.WhatIf) {
[pscustomobject]@{
ModuleName = $module.Name
Version = $module.Version
State = $State
}
}
}
}
}
Als u deze functie wilt gebruiken, kopieert en plakt u de code in uw PowerShell-sessie. In het volgende voorbeeld ziet u hoe u de functie uitvoert om een oudere versie van de Az PowerShell-module en de bijbehorende submodules te verwijderen.
Azure PowerShell
Uninstall-AzModule -Name Az -Version1.8.0
Terwijl het script wordt uitgevoerd, wordt de naam, versie en status van elke submodule weergegeven die wordt verwijderd. Als u het script alleen wilt uitvoeren om na te gaan wat er zou worden verwijderd, zonder daadwerkelijk tot verwijdering over te gaan, gebruikt u de parameter -WhatIf.
Output
ModuleName Version State
---------- ------- -----
Az.Accounts 1.5.1 Not found
Az.Aks 1.0.1 Uninstalled
Az.AnalysisServices 1.1.0 Uninstalled
Az.ApiManagement 1.0.0 Uninstalled
Az.ApplicationInsights 1.0.0 Uninstalled
...
Belangrijk
Als dit script niet overeenkomt met een exacte afhankelijkheid met dezelfde te verwijderen versie, wordt geen versie van die afhankelijkheid verwijderd. Dit is omdat er zich mogelijk nog andere versies van de doelmodule op uw systeem bevinden die afhankelijk zijn van deze afhankelijkheden.
Voer het volgende voorbeeld uit voor elke versie van de Az PowerShell-module die u wilt verwijderen.
Voor het gemak verwijdert u met het volgende script alle versies van Az behalve de nieuwste versie.
PowerShell
$Modules = Get-InstalledModule -Name Az -AllVersions |
Sort-Object -Property Version -Descending |
Select-Object -Skip1$Modules | ForEach-Object {Uninstall-AzModule -Name$_.Name -Version$_.Version}
De AzureRM-module verwijderen
Als de Az-module op uw systeem is geïnstalleerd en u AzureRM wilt verwijderen, hebt u twee opties. De methode die u moet volgen, hangt af van hoe u de AzureRM-module hebt geïnstalleerd. Als u niet zeker bent van de oorspronkelijke installatiemethode, volgt u eerst de stappen voor het verwijderen van een MSI.
De AzureRM PowerShell-module verwijderen uit MSI
Als u de AzureRM PowerShell-module hebt geïnstalleerd met het MSI-pakket, moet u deze verwijderen via het Windows-systeem, niet via PowerShell.
Platform
Instructies
Windows 10
Instellingen-apps > starten >
Windows 7 Windows 8
Programma's > > van het Configuratiescherm > starten om een programma te verwijderen
In dit scherm ziet u Azure PowerShell of Microsoft Azure PowerShell - maand jaar in de lijst met programma's staan. Dit is de app die u moet verwijderen. Als u dit programma niet vermeld ziet staan, hebt u geïnstalleerd via PowerShellGet en moet u de volgende reeks instructies volgen.
De AzureRM PowerShell-module verwijderen uit PowerShellGet
Als u AzureRM met PowerShellGet hebt geïnstalleerd, kunt u de modules verwijderen met de cmdlet Uninstall-AzureRM, die als onderdeel van de module Az.Accounts beschikbaar is. Hiermee verwijdert u alle AzureRM-modules van uw computer. Hiervoor zijn beheerdersbevoegdheden vereist.
In deze module worden de Azure PowerShell-omgeving en de Az-module voor Windows PowerShell uitgelegd. Ook wordt uitgelegd hoe u Microsoft Entra ID beheert met behulp van PowerShell-modules.