Azure PowerShell モジュールのアンインストールUninstall the Azure PowerShell module

この記事では、古いバージョンの Azure PowerShell をアンインストールする (システムから完全に削除する) 方法について説明します。This article tells you how to uninstall an older version of Azure PowerShell, or completely remove it from your system. Azure PowerShell を完全にアンインストールすることにした場合は、Send-Feedback コマンドレットを使用してフィードバックをお送りください。If you've decided to completely uninstall the Azure PowerShell, give us some feedback through the Send-Feedback cmdlet. バグが見つかった場合は、修正できるようにするため、GitHub で問題を報告していただきますよう、よろしくお願いいたします。If you encountered a bug, we'd appreciate it if you file a GitHub issue so that it can be fixed.

Az モジュールをアンインストールするUninstall the Az module

Az モジュールをアンインストールするには、Uninstall-Module コマンドレットを使用します。To uninstall the Az modules, use the Uninstall-Module cmdlet. ただし、Uninstall-Module でアンインストールされるモジュールは 1 つだけです。However, Uninstall-Module only uninstalls one module. Azure PowerShell を完全に削除するには、各モジュールを個別にアンインストールする必要があります。To remove Azure PowerShell completely, you must uninstall each module individually. 複数のバージョンの Azure PowerShell がインストールされている場合、アンインストールが複雑になることがあります。Uninstallation can be complicated if you have more than one version of Azure PowerShell installed.

現在インストールされている Azure PowerShell のバージョンを確認するには、次のコマンドを実行します。To check which versions of Azure PowerShell you currently have installed, run the following command:

Get-InstalledModule -Name Az -AllVersions
Version             Name                           Repository           Description
-------             ----                           ----------           -----------
0.7.0               Az                             PSGallery            Azure Resource Manager Module
1.0.0               Az                             PSGallery            Azure Resource Manager Module

次のスクリプトでは、PowerShell ギャラリーに照会して依存サブモジュールの一覧を取得します。The following script queries the PowerShell Gallery to get a list of dependent submodules. 次に、各サブモジュールの適切なバージョンがアンインストールされます。Then, the script uninstalls the correct version of each submodule. Process または CurrentUser 以外のスコープでこのスクリプトを実行するには、管理者アクセス権が必要です。You will need to have administrator access to run this script in a scope other than Process or CurrentUser.

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 セッションに貼り付けます。To use this function, copy and paste the code into your PowerShell session. 次の例は、関数を実行して古いバージョンの Azure PowerShell を削除する方法を示しています。The following example shows how to run the function to remove an older version of Azure PowerShell.

Uninstall-AllModules -TargetModule Az -Version 0.7.0 -Force

スクリプトを実行すると、アンインストールされる各サブモジュールの名前とバージョンが表示されます。As the script runs, it will display the name and version of each submodule that is being uninstalled. スクリプトを実行して削除対象を削除せずに表示のみを行うには、-WhatIf オプションを使用します。To run the script to only see what would be deleted, without removing it, use the -WhatIf option.

Creating list of dependencies...
Uninstalling Az.Profile version 0.7.0
Uninstalling Az.Aks version 0.7.0
Uninstalling Az.AnalysisServices version 0.7.0
...

注意

このスクリプトは、アンインストールするのと同じバージョンの依存関係を正確に突き合わせることができない場合、その依存関係の "どの" バージョンもアンインストールしません。If this script can't match an exact dependency with the same version to uninstall, it won't uninstall any version of that dependecy. これは、これらの依存関係に依存する他のバージョンのターゲット モジュールがシステム上に存在する可能性があるためです。This is because there may be other versions of the target module on your system which rely on these dependencies. この場合、依存関係の使用可能なバージョンが一覧表示されます。In this case, the available versions of the dependency are listed. その後、Uninstall-Module を使用して任意の古いバージョンを手動で削除できます。You can then remove any old versions manually with Uninstall-Module.

アンインストールする Azure PowerShell のバージョンごとにこのコマンドを実行します。Run this command for every version of Azure PowerShell that you want to uninstall. 便宜上、次のスクリプトにより、最新バージョンを__除く__、Az のすべてのバージョンがアンインストールされます。For convenience, the following script will uninstall all versions of Az except for the latest.

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

AzureRM モジュールをアンインストールするUninstall the AzureRM module

Az モジュールがシステムにインストールされていて、AzureRM をアンインストールする場合は、上記の Uninstall-AllModules スクリプトを実行する必要のない方法が 2 つあります。If you have the Az module installed on your system and would like to uninstall AzureRM, there are two options that don't require running the Uninstall-AllModules script above. AzureRM モジュールをインストールした方法に応じて、実行する方法は異なります。Which method you follow depends on how you installed the AzureRM module. 元のインストール方法が不明な場合は、まず、MSI をアンインストールするための手順に従います。If you're not sure of your original install method, follow the steps for uninstalling an MSI first.

Azure PowerShell MSI のアンインストールUninstall Azure PowerShell MSI

MSI パッケージを使用して Azure PowerShell AzureRM モジュールをインストールした場合は、PowerShell ではなく Windows システムからアンインストールする必要があります。If you installed the Azure PowerShell AzureRM modules using the MSI package, you must uninstall through the Windows system rather than PowerShell.

プラットフォームPlatform InstructionsInstructions
Windows 10Windows 10 [スタート] > [設定] > [アプリ]Start > Settings > Apps
Windows 7Windows 7
Windows 8Windows 8
[スタート] > [コントロール パネル] > [プログラム] > [プログラムのアンインストール]Start > Control Panel > Programs > Uninstall a program

この画面のプログラムの一覧に [Azure PowerShell] が表示されます。Once on this screen you should see Azure PowerShell in the program listing. これが、アンインストール対象のアプリです。This is the app to uninstall. このプログラムが一覧に表示されていない場合は、PowerShellGet を介してインストールされています。この場合は、次の一連の手順に従います。If you don't see this program listed, then you installed through PowerShellGet, and should follow the next set of instructions.

PowerShell からのアンインストールUninstall from PowerShell

PowerShellGet を使用して AzureRM をインストールした場合は、Az.Accounts モジュールの一部として使用可能な Uninstall-AzureRM コマンドでモジュールを削除します。If you installed AzureRM with PowerShellGet, then you can remove the modules with the Uninstall-AzureRM command, available as part of the Az.Accounts module. これによって、"すべて" の AzureRM モジュールがコンピューターから削除されます。ただし、管理者特権が必要です。This removes all AzureRM modules from your machine, but requires administrator privileges.

Uninstall-AzureRm

Uninstall-AzureRM コマンドを正常に実行できない場合は、この記事で提供されている Uninstall-AllModules スクリプトを次の呼び出しで使用します。If you can't successfully run the Uninstall-AzureRM command, use the Uninstall-AllModules script provided in this article with the following invocation:

$versions = (Get-InstalledModule AzureRM -AllVersions | Select-Object Version)
$versions | foreach { Uninstall-AllModules -TargetModule AzureRM -Version ($_.Version) -Force }