共用方式為


卸載 Azure PowerShell 模組

警告

自 2024 年 2 月 29 日起,AzureRM PowerShell 模組已正式淘汰。 建議使用者從 AzureRM 遷移至 Az PowerShell 模組,以確保持續支援和更新。

雖然 AzureRM 模組可能仍可運作,但不再維護或支援它,但會根據用戶的判斷權和風險放置任何繼續使用。 如需轉換至 Az 模組的指引,請參閱我們的 移轉資源

本文說明如何卸載舊版的 Azure PowerShell,或從您的系統完全移除它。 如果您已決定完全卸載 Azure PowerShell,請透過 Send-Feedback Cmdlet 提供一些意見反應。 如果您遇到錯誤,如果您 提出 GitHub 問題,我們很感激。

卸載 Azure PowerShell MSI

如果您使用 MSI 套件安裝 Azure PowerShell,則必須透過 Windows 系統卸載,而不是 PowerShell。

平台 Instructions
Windows 10 啟動 > 設定 > 應用程式
Windows 7
Windows 8
[開始] > [控制台] > [程式集] > [解除安裝程式]

在此畫面上,您應該會在程序清單中看到 Azure PowerShell 。 這是要卸載的應用程式。

從 PowerShell 卸載

如果您使用 PowerShellGet 安裝 Azure PowerShell,您可以使用 Uninstall-Module Cmdlet。 不過, Uninstall-Module 只會卸載一個模組。 若要完全移除 Azure PowerShell,您必須個別卸載每個模組。 如果您已安裝一個以上的 Azure PowerShell 版本,卸載可能會很複雜。

若要檢查您目前已安裝的 Azure PowerShell 版本,請執行下列命令:

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

下列文本會查詢 PowerShell 資源庫 以取得相依子模組的清單。 然後,腳本會卸載每個子模組的正確版本。 您必須有系統管理員存取權,才能在 或 CurrentUser以外的Process範圍內執行此腳本。

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)
    }
  }
}

若要使用此函式,請將程式代碼複製並貼到PowerShell工作階段中。 下列範例示範如何執行 函式來移除舊版的 Azure PowerShell。

Uninstall-AllModules -TargetModule AzureRM -Version 4.4.1 -Force

當文稿執行時,它會顯示卸載的每個子模組的名稱和版本。 若要執行文稿,只查看將刪除的內容,而不移除腳本,請使用 -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
...

注意

如果此腳本無法與要卸載的相同版本完全相依性相符,則不會卸載 該相依性的任何 版本。 這是因為您的系統上可能有其他版本的目標模組依賴這些相依性。 在此情況下,會列出可用的相依性版本。 然後,您可以使用 手動 Uninstall-Module移除任何舊版。

針對您想要卸載的每個 Azure PowerShell 版本執行此命令。 為了方便起見,下列腳本會卸載所有版本的 AzureRM ,但最新的版本除外

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