Udostępnij za pośrednictwem


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

Włącz rejestrowanie debugowania

Jednym z pierwszych kroków, które należy wykonać w rozwiązaniu problemu z modułem 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'

Komunikaty w scenariuszach automatyzacji

Podczas nawiązywania połączenia z platformą Azure przy użyciu programu Azure PowerShell komunikaty anonsów są wyświetlane przy użyciu strumienia informacji programu PowerShell, aby uniemożliwić im zmianę zwracanych danych wyjściowych opartych na obiektach. Mimo że podjęliśmy wszelkie wysiłki, aby zadbać, że komunikaty o anonsach nie mają wpływu na Twoje doświadczenie, istnieją pewne scenariusze automatyzacji, w których mogą wpłynąć na użycie. Jeśli wystąpią problemy, zalecamy wstrzymanie strumienia informacji w tych scenariuszach.

Connect-AzAccount -Subscription '<subscription name or id>' -InformationAction Ignore

Menedżer kont sieci Web (WAM)

  • Metoda logowania interakcyjnego nie może otworzyć okna dla WAM i zwraca błąd: Użytkownik anulował uwierzytelnianie.
  • Polecenia cmdlet programu Azure PowerShell nie mogą być uruchamiane po zalogowaniu się przy użyciu nazwy użytkownika i hasła lub kodu urządzenia.
  • Okno podręczne WAM nie wyświetla opcji konta służbowego.
  • Metoda logowania interakcyjnego nie może otworzyć okna WAM w konsoli środowiska Windows PowerShell ISE.

Obejściem tych problemów jest wyłączenie WAM:

Update-AzConfig -EnableLoginByWam $false
  • Okno wyskakujące WAM do wyboru konta nie jest łatwe do znalezienia. Zminimalizuj inne okna, aby zlokalizować wyskakujące okno.

Instalacja

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

Współistnienie Az i AzureRM

Ostrzeżenie

Nie wspieramy jednoczesnego zainstalowania modułów AzureRM i Az w systemie 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 wycofany z użytku z dniem 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, a użytkownik stosuje go na własną odpowiedzialność. 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 funkcji "Odinstaluj" w obszarze Aplikacje &. 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, że galeria programu PowerShell jest nieosiągalna, być może znajdujesz się za serwerem proxy. Różne systemy operacyjne i środowisko sieciowe mają różne wymagania dotyczące konfigurowania serwera proxy dla całego systemu. Skontaktuj się z administratorem systemu w celu uzyskania ustawień serwera proxy i sposobu ich konfigurowania dla danego środowiska.

Sam program PowerShell może nie być skonfigurowany do automatycznego używania tego serwera proxy. W programie PowerShell 5.1 lub nowszym skonfiguruj sesję programu PowerShell tak, aby korzystała z serwera proxy przy użyciu następujących poleceń:

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

Jeśli poświadczenia systemu operacyjnego są poprawnie skonfigurowane, ta konfiguracja kieruje żądania programu PowerShell za pośrednictwem serwera proxy. Aby to ustawienie było utrwalane między sesjami, dodaj 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.

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

Get-AzResource -ResourceId $resourceId

Problemy z uprawnieniami w poleceniach cmdlet AzAD

Moduł Az programu PowerShell używa interfejsu API programu Microsoft Graph. Administrowanie zasobami na platformie Azure za pomocą modułu Az programu PowerShell lub zarządzanie nimi wymaga tych samych uprawnień co wykonywanie identycznego zadania z witryny Azure Portal lub dowolnego innego narzędzia wiersza polecenia platformy Azure. Aby uzyskać szczegółowe pytania dotyczące uprawnień, zobacz dokumentacja uprawnień programu Microsoft Graph.

Parametry zapytania programu Microsoft Graph

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

Get-AzAdGroupMember nie zwraca zasad dostępu do usługi

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

Poniższy przykład wymaga modułu Az programu PowerShell. Zastąp myGroupName 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żny

Po zainstalowaniu modułu AzureRM w zakresie AllUsers programu Windows PowerShell, jest on umiejscowiony w lokalizacji będącej częścią $env:PSModulePath dla 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 Moduł AzureRM mogą współistnieć w tym samym systemie Windows, ale tylko wtedy, gdy moduł AzureRM jest zainstalowany w zakresie CurrentUser ś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 wycofany z użytku 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.

Chociaż moduł AzureRM może nadal działać, nie jest już utrzymywany ani wspierany, co oznacza, że dalsze jego użycie odbywa się na własne ryzyko 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żesz 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 przy użyciu Connect-AzAccount: "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 pozycję 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, komunikat jest wyświetlany podczas uruchamiania New-AzADServicePrincipal lub New-AzADApplication.

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

Możesz również zaktualizować moduł Az programu PowerShell do wersji 6.0 lub nowszej.

Oś czasu

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

Wersje, których to dotyczy

Wpływ następujących wersji programu Azure PowerShell jest związany z przełomowymi zmianami w AzureAD:

  • 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, bez wahania otwórz zgłoszenie.

Sposób obejścia

Jeśli nie możesz zaktualizować do wcześniej opisanych modułów PowerShell, możesz skorzystać z następujących kroków podczas tworzenia obiektu zasadniczego usługi:

Inne problemy

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