Rozwiązywanie problemów z modułem Az programu PowerShell

Włączanie rejestrowania debugowania

Jednym z pierwszych kroków, które należy wykonać w rozwiązaniu problemu z modułem Azure Az programu PowerShell, jest włączenie rejestrowania debugowania.

Aby włączyć rejestrowanie debugowania dla poszczególnych poleceń, określ parametr Debug .

Get-AzResource -Name 'DoesNotExist' -Debug

Aby włączyć rejestrowanie debugowania dla całej sesji programu PowerShell, należy ustawić wartość zmiennej DebugPreference na Continue.

$DebugPreference = 'Continue'

Instalacja

Ta sekcja zawiera listę rozwiązań typowych problemów podczas instalowania modułu Azure Az programu PowerShell.

Współistnienie modułu Az i modułu AzureRM

Ostrzeżenie

Nie obsługujemy równocześnie zainstalowanych modułów AzureRM i Az PowerShell w programie Windows PowerShell 5.1.

W scenariuszu, w którym należy zainstalować zarówno moduł AzureRM, jak i moduł Az programu PowerShell w tym samym systemie Windows:

  • Moduł AzureRM musi być zainstalowany tylko w bieżącym zakresie użytkownika programu Windows PowerShell 5.1.
  • Zainstaluj moduł Az programu PowerShell w programie PowerShell w wersji 7.2 lub nowszej.

Ostrzeżenie

Moduł AzureRM PowerShell został oficjalnie przestarzały od 29 lutego 2024 r. Zaleca się migrowanie użytkowników z modułu AzureRM do modułu Az programu PowerShell w celu zapewnienia ciągłej obsługi i aktualizacji.

Mimo że moduł AzureRM może nadal działać, nie jest już utrzymywany ani obsługiwany, umieszczając wszelkie dalsze zastosowania według uznania i ryzyka użytkownika. Zapoznaj się z naszymi zasobami migracji, aby uzyskać wskazówki dotyczące przejścia do modułu Az.

Visual Studio

Starsze wersje programu Visual Studio mogą instalować program Azure PowerShell w ramach obciążenia programistycznego platformy Azure, który instaluje moduł AzureRM. Program Azure PowerShell można usunąć przy użyciu instalatora programu Visual Studio lub użyć polecenia "Odinstaluj" w obszarze Aplikacje i funkcje. Jeśli masz już zainstalowany program PowerShell 7.x, może być konieczne ręczne zainstalowanie modułu Az programu PowerShell.

Serwer proxy blokuje połączenie

Jeśli wystąpią błędy z Install-Module tego, że Galeria programu PowerShell jest niedostępny, być może znajdujesz się za serwerem proxy. Różne systemy operacyjne i środowiska sieciowe mają różne wymagania dotyczące konfigurowania serwera proxy dla całego systemu. Skontaktuj się z administratorem systemu w celu uzyskania informacji o ustawieniach serwera proxy oraz sposobie konfigurowania ich dla Twojego środowiska.

Sam program PowerShell może nie być skonfigurowany do automatycznego korzystania z tego serwera proxy. Za pomocą programu PowerShell 5.1 lub nowszego skonfiguruj sesję programu PowerShell do użycia serwera proxy, wydając następujące polecenia:

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

Jeśli poświadczenia w Twoim systemie operacyjnym są skonfigurowane poprawnie, ta konfiguracja spowoduje kierowanie żądań programu PowerShell przez serwer proxy. Aby to ustawienie utrzymywało się między sesjami, dodaj te polecenia do profilu programu PowerShell.

Aby zainstalować pakiet, serwer proxy musi zezwolić na połączenia HTTPS z www.powershellgallery.com.

Odwołanie do obiektu nie jest ustawione na wystąpienie obiektu

Komunikat "Odwołanie do obiektu nie jest ustawione na wystąpienie obiektu" oznacza, że odwołujesz się do obiektu o wartości null lub zasobu platformy Azure, który nie istnieje lub nie masz uprawnień dostępu.

$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.

Możesz użyć Get-AzResource polecenia cmdlet , aby sprawdzić, czy określony zasób platformy Azure istnieje.

Get-AzResource -ResourceId $resourceId

Problemy z uprawnieniami poleceń cmdlet azAD

Moduł Az programu PowerShell używa interfejsu API programu Microsoft Graph. Administracja sterowanie zasobów lub zarządzanie nimi na platformie Azure przy użyciu modułu Az programu PowerShell wymaga tych samych uprawnień co wykonywanie identycznych zadań z witryny Azure Portal lub dowolnego innego narzędzia wiersza polecenia platformy Azure. Aby uzyskać szczegółowe pytania dotyczące uprawnień, zobacz dokumentację uprawnień programu Microsoft Graph.

Parametry zapytania programu Microsoft Graph

Polecenia cmdlet AzAd w obszarze Az.Resources obsługują teraz parametry zapytania i parametry zapytania wyszukiwania. Aby uzyskać szczegółowe informacje na temat składni, zobacz wcześniej przywołyne linki.

Polecenie Get-AzAdGroupMember nie zwraca jednostek usługi

Ze względu na ograniczenia dotyczące bieżącego interfejsu API programu Graph jednostki usługi nie są zwracane przez polecenie Get-AzAdGroupMember w module Az 7.x. Aby obejść ten problem, można użyć metody Invoke-AzRestMethod z wersją beta interfejsu API programu Microsoft Graph.

Poniższy przykład wymaga modułu Az programu PowerShell. Zastąp myGroupName element w pierwszym wierszu nazwą grupy.

$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'}}

Znaleziono polecenie, ale nie można go załadować

Podczas próby uruchomienia dowolnego polecenia programu PowerShell w programie PowerShell zostanie zwrócony następujący komunikat.

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'.

Ten komunikat występuje, gdy moduły Az i AzureRM PowerShell są zainstalowane w tym samym systemie windows i istnieją w $env:PSModulePath dla tej samej wersji programu PowerShell.

Ważne

Po zainstalowaniu AllUsers modułu AzureRM w zakresie programu Windows PowerShell jest on instalowany w lokalizacji, która jest częścią $env:PSModulePath programu PowerShell 7. Nie jest to obsługiwane z powodu konfliktów między modułami AzureRM i Az PowerShell.

Zarówno moduł Az, jak i AzureRM mogą współistnieć w tym samym systemie Windows, ale tylko wtedy, gdy moduł AzureRM jest zainstalowany w CurrentUser zakresie środowiska Windows PowerShell i modułu Az zainstalowanego w programie PowerShell 7. Aby uzyskać więcej informacji, zobacz Instalowanie modułu Az programu PowerShell.

Ostrzeżenie

Moduł AzureRM PowerShell został oficjalnie przestarzały od 29 lutego 2024 r. Zaleca się migrowanie użytkowników z modułu AzureRM do modułu Az programu PowerShell w celu zapewnienia ciągłej obsługi i aktualizacji.

Mimo że moduł AzureRM może nadal działać, nie jest już utrzymywany ani obsługiwany, umieszczając wszelkie dalsze zastosowania według uznania i ryzyka użytkownika. Zapoznaj się z naszymi zasobami migracji, aby uzyskać wskazówki dotyczące przejścia do modułu Az.

W systemie MacOS błąd jest zwracany, gdy autoryzacja łańcucha kluczy kończy się niepowodzeniem

Podczas uruchamiania programu Azure PowerShell w systemie MacOS może wystąpić komunikat o błędzie podczas próby zalogowania się do konta platformy Azure z sesji programu PowerShell.

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

Aby obejść ten problem, można wyłączyć przechowywanie poświadczeń między sesjami, uruchamiając następujące polecenie. Po wprowadzeniu tej zmiany należy jednak uruchomić Connect-AzAccount za każdym razem, gdy rozpoczniesz nową sesję programu PowerShell.

Disable-AzContextAutosave

Połączenie dla tej witryny nie jest bezpieczne

Gdy domyślna przeglądarka to Microsoft Edge, może wystąpić następujący błąd podczas próby zalogowania się do platformy Azure interaktywnie za pomocą Connect-AzAccountpolecenia : "Połączenie dla tej witryny nie jest bezpieczne". Aby rozwiązać ten problem, odwiedź stronę edge://net-internals/#hsts w przeglądarce Microsoft Edge. Dodaj localhost w obszarze "Usuń zasady zabezpieczeń domeny" i kliknij przycisk Usuń.

Błąd zweryfikowanego identyfikatora jednostki usługi w domenie

Błąd: Wartości właściwości identifierUris muszą używać zweryfikowanej domeny organizacji lub jej poddomeny jest wyświetlana podczas uruchamiania New-AzADServicePrincipal lub New-AzADApplication.

Ze względu na niezgodną zmianę identyfikatora AppId w aplikacjach z jedną dzierżawą wymagają użycia schematu domyślnego lub zweryfikowanych domen , należy uaktualnić moduł Az.Resources do wersji 4.1.0 lub nowszej, aby kontynuować korzystanie z New-AzADServicePrincipal poleceń cmdlet lub New-AzADApplication .

Możesz również przeprowadzić uaktualnienie do modułu Az programu PowerShell w wersji 6.0 lub nowszej.

Oś czasu

Wymóg wszedł w życie 15 października 2021 r.

Wersje, których to dotyczy

Zmiany powodujące niezgodność usługi AzureAD mają wpływ na następujące wersje programu Azure PowerShell:

  • Moduł Az.Resources programu PowerShell w wersji 3.5.1 lub nowszej.
  • Moduł Az programu PowerShell w wersji 5.9.0 lub nowszej.

Jeśli po uaktualnieniu nadal występują problemy, możesz otworzyć problem.

Rozwiązanie

Jeśli nie możesz uaktualnić do opisanych wcześniej modułów programu PowerShell, możesz wykonać następujące kroki podczas tworzenia jednostki usługi:

Inne problemy

Jeśli wystąpi problem z produktem w programie Azure PowerShell, który nie został wymieniony w tym artykule lub potrzebujesz dalszej pomocy, zgłoś problem w usłudze GitHub.