Az PowerShell 모듈 문제 해결

디버그 로깅 활성화

Azure Az PowerShell 모듈의 문제 해결에서 수행해야 하는 첫 번째 단계 중 하나는 디버그 로깅을 사용하도록 설정하는 것입니다.

명령별로 디버그 로깅을 사용하도록 설정하려면 디버그 매개 변수를 지정합니다.

Get-AzResource -Name 'DoesNotExist' -Debug

전체 PowerShell 세션에 대한 디버그 로깅을 사용하도록 설정하려면 DebugPreference 변수의 값을 .로깅으로 Continue설정합니다.

$DebugPreference = 'Continue'

설치

이 섹션에는 Azure Az PowerShell 모듈을 설치할 때 발생하는 일반적인 문제에 대한 솔루션 목록이 포함되어 있습니다.

Az 및 AzureRM 공존

Warning

Windows PowerShell 5.1에 AzureRM 및 Az PowerShell 모듈을 둘 다 동시에 설치할 수는 없습니다.

AzureRM 및 Az PowerShell 모듈을 둘 다 동일한 Windows 시스템에 설치해야 하는 시나리오에서:

  • AzureRM은 Windows PowerShell 5.1의 현재 사용자 범위에서만 설치해야 합니다.
  • PowerShell 7.2 이상에서 Az PowerShell 모듈을 설치합니다.

Warning

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

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

Visual Studio

이전 버전의 Visual Studio는 AzureRM 모듈을 설치하는 Azure 개발 워크로드의 일부로 Azure PowerShell을 설치할 수 있습니다. Visual Studio 설치 관리자를 사용하거나 앱 및 기능에서 "제거"를 사용하여 Azure PowerShell을 제거할 수 있습니다. PowerShell 7.x를 이미 설치한 경우 Az PowerShell 모듈을 수동으로 설치해야 할 수 있습니다.

프록시 연결 차단

PowerShell 갤러리 연결할 수 없다는 오류가 Install-Module 발생하면 프록시 뒤에 있을 수 있습니다. 운영 체제와 네트워크 환경에 따라 시스템 수준 프록시 구성에 대한 요구 사항이 다릅니다. 프록시 설정 및 환경에 맞게 구성하는 방법에 대해서는 시스템 관리자에게 문의하세요.

PowerShell 자체는 이 프록시를 자동으로 사용하도록 구성되지 않을 수 있습니다. PowerShell 5.1 이상에서는 다음 명령을 사용하여 프록시를 사용하도록 PowerShell 세션을 구성합니다.

$webClient = New-Object -TypeName System.Net.WebClient
$webClient.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials

운영 체제 자격 증명이 올바르게 구성되면 이 구성에서 프록시를 통해 PowerShell 요청을 라우팅합니다. 세션 간에 이 설정을 유지하려면 PowerShell 프로필에 명령을 추가합니다.

패키지를 설치하려면 프록시가 httpS 연결을 www.powershellgallery.com 허용해야 합니다.

개체 참조가 개체의 인스턴스로 설정되지 않음

"개체 참조가 개체 인스턴스로 설정되지 않음"이라는 메시지는 null이거나 존재하지 않거나 액세스할 수 있는 권한이 없는 Azure 리소스를 참조하는 것을 의미합니다.

$resourceId =  '/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/<resource-group-name>/providers/Microsoft.Web/sites/<webapp-name>/privateEndpointConnections/<endpoint-name>'
Get-AzPrivateEndpointConnection -ResourceId $resourceId
Get-AzPrivateEndpointConnection: Object reference not set to an instance of an object.

Get-AzResource cmdlet을 사용하여 지정된 Azure 리소스가 있는지 확인할 수 있습니다.

Get-AzResource -ResourceId $resourceId

AzAD cmdlet의 권한 문제

Az PowerShell 모듈은 Microsoft Graph API를 사용합니다. Az PowerShell 모듈을 사용하여 Azure에서 리소스를 관리하려면 Azure Portal 또는 다른 Azure 명령줄 도구에서 동일한 작업을 수행하는 것과 동일한 권한이 필요합니다. 권한에 대한 특정 질문은 Microsoft Graph 권한 참조를 참조하세요.

Microsoft Graph 쿼리 매개 변수

Az.Resources의 AzAd cmdlet은 이제 쿼리 매개 변수검색 쿼리 매개 변수를 지원합니다. 구문에 대한 자세한 내용은 이전에 참조된 링크를 참조하세요.

Get-AzAdGroupMember는 서비스 주체를 반환하지 않습니다.

현재 Graph API의 제한 사항으로 인해 서비스 주체는 Az 7.x의 Get-AzAdGroupMember에서 반환되지 않습니다. 해결 방법으로 Invoke-AzRestMethod를 Microsoft Graph API의 베타 버전과 함께 사용할 수 있습니다.

다음 예제에는 Az PowerShell 모듈이 필요합니다. 첫 번째 줄의 myGroupName을 그룹의 이름으로 바꿉니다.

$Group = Get-AzADGroup -DisplayName myGroupName
((Invoke-AzRestMethod -Uri "https://graph.microsoft.com/beta/groups/$($Group.id)/members").Content |
  ConvertFrom-Json).value |
  Select-Object -Property DisplayName, Id, @{label='OdataType';expression={$_.'@odata.type'}}

명령을 찾았지만 로드할 수 없음

다음 메시지는 Az PowerShell 명령을 실행하려고 할 때 PowerShell에서 반환됩니다.

Connect-AzAccount: The 'Connect-AzAccount' command was found in the module 'Az.Accounts', but the module could not be loaded. For more information, run 'Import-Module Az.Accounts'.

이 메시지는 동일한 Windows 기반 시스템에 Az 및 AzureRM PowerShell 모듈이 모두 설치되어 있고 동일한 버전의 PowerShell에 대한 $env:PSModulePath 에 있는 경우에 발생합니다.

Important

AzureRM이 Windows PowerShell 범위에 설치되면 AllUsers PowerShell 7의 일부 $env:PSModulePath 인 위치에 설치됩니다. 이는 AzureRM과 Az PowerShell 모듈 간의 충돌로 인해 지원되지 않습니다.

Az와 AzureRM은 모두 동일한 Windows 시스템에 공존할 수 있지만, 이 경우 AzureRM이 Windows PowerShell의 CurrentUser 범위에 설치되고 PowerShell 7에 Az가 설치된 경우에만 가능합니다. 자세한 내용은 Az PowerShell 모듈 설치를 참조 하세요.

Warning

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

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

MacOS에서 KeyChain 권한 부여가 실패하면 오류가 반환됩니다.

MacOS에서 Azure PowerShell을 실행할 때 PowerShell 세션에서 Azure 계정에 로그인하는 동안 오류 메시지가 표시될 수 있습니다.

DeviceCodeCredential authentication failed: Persistence check failed. Reason: KeyChain authorization/authentication failed. .Error code: -25293. OS error code -25293.

이 문제를 해결하기 위해 다음 명령을 실행하여 세션 간에 자격 증명 저장을 사용하지 않도록 설정할 수 있습니다. 그러나 이 변경을 수행한 후에는 새 PowerShell 세션을 시작할 때마다 실행 Connect-AzAccount 해야 합니다.

Disable-AzContextAutosave

이 사이트에 대한 연결이 안전하지 않습니다.

기본 브라우저가 Microsoft Edge인 경우 대화형으로 Connect-AzAccountAzure에 로그인하려고 할 때 다음 오류가 발생할 수 있습니다. "이 사이트에 대한 연결은 안전하지 않습니다.". 이 문제를 해결하려면 Microsoft Edge의 edge://net-internals/#hsts 방문하세요. "삭제기본 보안 정책" 아래에 추가하고 localhost 삭제를 클릭합니다.

서비스 주체 IdentifierUri가 확인된 경우기본 오류

오류: identifierUris 속성의 값은 조직 또는 해당 하위 작업의 확인된 do기본를 사용해야 합니다기본 실행하거나 New-AzADApplication실행할 New-AzADServicePrincipal 때 표시됩니다.

Microsoft Entra 호환성이 손상되는 변경으로 인해 단일 테넌트 애플리케이션에서 AppId Uri가 기본 체계를 사용해야 하거나 확인된 작업기본 때문에 Az.Resources 모듈을 버전 4.1.0 이상으로 업그레이드해야 New-AzADServicePrincipal 합니다New-AzADApplication.

Az PowerShell 모듈 버전 6.0 이상으로 업그레이드할 수도 있습니다.

타임라인

이 요구 사항은 2021년 10월 15일에 발효되었습니다.

영향을 받는 버전

다음 버전의 Azure PowerShell은 AzureAD 호환성이 손상되는 변경의 영향을 받습니다.

  • Az.Resources PowerShell 모듈 버전 3.5.1-preview 이하.
  • Az PowerShell 모듈 버전 5.9.0 이하.

업그레이드 후에도 문제가 계속 발생하는 경우 문제를 제출하세요.

해결 방법

앞에서 설명한 PowerShell 모듈로 업그레이드할 수 없는 경우 서비스 주체를 만들 때 다음 단계를 따를 수 있습니다.

기타 문제

이 문서에 나열되지 않은 Azure PowerShell 제품 문제가 발생하거나 추가 지원이 필요한 경우 GitHub에 문제를 제출합니다.