Sdílet prostřednictvím


Odinstalace modulu Azure PowerShellu

Upozorňující

Modul AzureRM PowerShell byl od 29. února 2024 oficiálně zastaralý. Uživatelům se doporučuje migrovat z AzureRM do modulu Az PowerShell, aby se zajistila nepřetržitá podpora a aktualizace.

I když může modul AzureRM stále fungovat, už se neudržuje ani nepodporuje, přičemž jakékoli další použití se bude umisťovat podle vlastního uvážení a rizika uživatele. Pokyny k přechodu na modul Az najdete v našich zdrojích informací o migraci.

V tomto článku se dozvíte, jak odinstalovat starší verzi Azure PowerShellu nebo ho úplně odebrat ze systému. Pokud jste se rozhodli Azure PowerShell úplně odinstalovat, dejte nám prosím zpětnou vazbu prostřednictvím rutiny Send-Feedback. Pokud narazíte na chybu, uvítáme, když založíte problém na GitHubu.

Odinstalace MSI Azure PowerShellu

Pokud jste nainstalovali Azure PowerShell pomocí balíčku MSI, je potřeba provést odinstalaci prostřednictvím systému Windows, a ne PowerShellu.

Platforma Pokyny
Windows 10 Spuštění > aplikací Nastavení >
Windows 7
Windows 8
Spuštění > programu Ovládací panely > > Odinstalace programu

Když se dostanete na tuto obrazovku, měl by se v seznamu programů zobrazit Azure PowerShell. Toto je aplikace k odinstalaci.

Odinstalace z PowerShellu

Pokud jste nainstalovali Azure PowerShell pomocí PowerShellGet, můžete použít rutinu Uninstall-Module. Rutina Uninstall-Module ale odinstaluje jenom jeden modul. Pokud chcete Azure PowerShell odebrat úplně, je potřeba odinstalovat každý modul jednotlivě. Když je nainstalovaných několik verzí Azure PowerShellu, může být odinstalace komplikovaná.

Pokud chcete zkontrolovat, kterou verzi Azure PowerShellu máte aktuálně nainstalovanou, spusťte následující příkaz:

Get-InstalledModule -Name AzureRM -AllVersions
Version              Name                                Repository           Description
-------              ----                                ----------           -----------
6.11.0               AzureRM                             PSGallery            Azure Resource Manager Module
6.13.1               AzureRM                             PSGallery            Azure Resource Manager Module

Následující skript se dotáže Galerie PowerShellu na seznam závislých dílčích modulů. Pak skript odinstaluje správnou verzi každého dílčího modulu. Ke spuštění skriptu v jiném rozsahu než Process nebo CurrentUser budete potřebovat přístup správce.

function Uninstall-AllModules {
  param(
    [Parameter(Mandatory=$true)]
    [string]$TargetModule,

    [Parameter(Mandatory=$true)]
    [string]$Version,

    [switch]$Force,

    [switch]$WhatIf
  )

  $AllModules = @()

  'Creating list of dependencies...'
  $target = Find-Module $TargetModule -RequiredVersion $version
  $target.Dependencies | ForEach-Object {
    if ($_.PSObject.Properties.Name -contains 'requiredVersion') {
      $AllModules += New-Object -TypeName psobject -Property @{name=$_.name; version=$_.requiredVersion}
    }
    else { # Assume minimum version
      # Minimum version actually reports the installed dependency
      # which is used, not the actual "minimum dependency." Check to
      # see if the requested version was installed as a dependency earlier.
      $candidate = Get-InstalledModule $_.name -RequiredVersion $version -ErrorAction Ignore
      if ($candidate) {
        $AllModules += New-Object -TypeName psobject -Property @{name=$_.name; version=$version}
      }
      else {
        $availableModules = Get-InstalledModule $_.name -AllVersions
        Write-Warning ("Could not find uninstall candidate for {0}:{1} - module may require manual uninstall. Available versions are: {2}" -f $_.name,$version,($availableModules.Version -join ', '))
      }
    }
  }
  $AllModules += New-Object -TypeName psobject -Property @{name=$TargetModule; version=$Version}

  foreach ($module in $AllModules) {
    Write-Host ('Uninstalling {0} version {1}...' -f $module.name,$module.version)
    try {
      Uninstall-Module -Name $module.name -RequiredVersion $module.version -Force:$Force -ErrorAction Stop -WhatIf:$WhatIf
    } catch {
      Write-Host ("`t" + $_.Exception.Message)
    }
  }
}

Pokud chcete tuto funkci použít, zkopírujte kód a vložte ho do relace PowerShellu. Následující příklad ukazuje, jak funkci spustit, aby se odebrala starší verze Azure PowerShellu.

Uninstall-AllModules -TargetModule AzureRM -Version 4.4.1 -Force

Při běhu skript zobrazuje název a verzi každého dílčího modulu, který se odinstaluje. Pokud chcete spustit skript jenom jako kontrolu, co se odstraní, aniž byste to odebrali, použijte možnost -WhatIf.

Creating list of dependencies...
Uninstalling AzureRM.Profile version 3.4.1
Uninstalling Azure.Storage version 3.4.1
Uninstalling AzureRM.AnalysisServices version 0.4.7
Uninstalling Azure.AnalysisServices version 0.4.7
...

Poznámka:

Pokud tento skript nenajde pro tuto závislost přesně shodnou verzi k odinstalaci, neodinstaluje žádnou verzi této závislosti. Důvodem je to, že ve vašem systému mohou být další verze cílového modulu, které na tyto závislosti spoléhají. V takovém případě se zobrazí seznam dostupných verzí příslušné závislosti. K ručnímu odebrání libovolné starší verze můžete využít Uninstall-Module.

Tento příkaz spusťte pro každou verzi Azure PowerShellu, kterou chcete odinstalovat. Pro usnadnění následující skript odinstaluje všechny verze AzureRM s výjimkou té nejnovější.

$versions = (Get-InstalledModule -Name AzureRM -AllVersions | Select-Object -Property Version)
$versions[0..($versions.Length-2)]  | foreach { Uninstall-AllModules -TargetModule AzureRM -Version ($_.Version) -Force }