Azure PowerShell 모듈 제거

Warning

AzureRM PowerShell 모듈은 2024년 2월 29일부터 공식적으로 사용되지 않습니다. 사용자는 지속적인 지원 및 업데이트를 보장하기 위해 AzureRM에서 Az PowerShell 모듈로 마이그레이션하는 것이 좋습니다.

AzureRM 모듈은 여전히 작동할 수 있지만 더 이상 기본 또는 지원되지 않으므로 사용자의 재량에 따라 계속 사용할 수 있습니다. Az 모듈로 전환하는 방법에 대한 지침은 마이그레이션 리소스를 참조하세요.

이 문서에서는 이전 버전의 Azure PowerShell을 제거하거나 시스템에서 완전히 제거하는 방법을 설명합니다. Azure PowerShell을 완전히 제거하기로 결정한 경우 Send-Feedback cmdlet을 통해 몇 가지 피드백을 제공하세요. 버그가 발생하면 GitHub 문제를 제출하면 감사하겠습니다.

Azure PowerShell MSI 제거

MSI 패키지를 사용하여 Azure PowerShell을 설치한 경우 PowerShell이 아닌 Windows 시스템을 통해 제거해야 합니다.

플랫폼 지침
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 갤러리 쿼리하여 종속 하위 모듈 목록을 가져옵니다. 그런 다음 스크립트는 각 하위 모듈의 올바른 버전을 제거합니다. 다른 Process 범위에서 이 스크립트를 실행하려면 관리자 액세스 권한이 있어야 합니다 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 세션에 붙여넣습니다. 다음 예제에서는 함수를 실행하여 이전 버전의 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 }