Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Włącz logowanie 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'
Znany problem: Instalowanie modułów Az z mar kończy się niepowodzeniem
Podczas instalowania niektórych modułów az programu PowerShell z rejestru Artefaktów Microsoft (MAR) przy użyciu modułu PSResourceGet może wystąpić błąd, taki jak:
Install-PSResource: Package(s) 'Az.Keyvault' could not be installed from repository 'MAR'.
Uwaga / Notatka
Aby obejść ten problem, zainstaluj moduł z innego repozytorium, takiego jak galeria programu PowerShell, aż problem zostanie rozwiązany.
Aby uzyskać więcej informacji, zobacz Bugfix for porównywania nazwy ścieżki pliku w celu określenia dokładnego dopasowania.
Rozwiązywanie problemów z uwierzytelnianiem wieloskładnikowych (MFA)
Błędy logowania interakcyjnego
Jeśli wystąpią błędy podczas uruchamiania poleceń cmdlet programu Azure PowerShell, które tworzą, modyfikują lub usuwają zasoby, problem może być spowodowany przez zasady dostępu warunkowego identyfikatora Entra firmy Microsoft, które wymagają uwierzytelniania wieloskładnikowego (MFA).
Te błędy zwykle występują, gdy uwierzytelnianie wieloskładnikowe jest wymagane przez zasady, ale nie jest wymuszane podczas logowania.
SharedTokenCacheUtwórz uwierzytelnianie niedostępne
Ten błąd może wystąpić podczas korzystania z:
- Az Moduł programu PowerShell w wersji 14.2.0 lub starszej
- Moduł Az.Accounts programu PowerShell w wersji 5.1.1 lub starszej
SharedTokenCacheCredential authentication unavailable. Token acquisition failed for user
someone@contoso.com. Ensure that you have authenticated with a developer tool that supports Azure
single sign on.
Uaktualnij do następujących wersji lub nowszych, aby otrzymywać bardziej informacyjne komunikaty o błędach i szczegóły zasad:
- Az Moduł programu PowerShell: wersja 14.3.0 lub nowsza
- Moduł Az.Accounts : wersja 5.2.0 lub nowsza
Zasób został niedozwolony przez zasady
Ten błąd występuje w nowszych wersjach modułów (Az 14.3.0+ i Az.Accounts 5.2.0 +), gdzie uwierzytelnianie wieloskładnikowe jest wymagane przez dostęp warunkowy dla określonych operacji.
Resource was disallowed by policy. Users must use MFA for Create operation.
Users must authenticate with multi-factor authentication to create or update resources.
Run the cmdlet below to authenticate interactively; additional parameters may be added as needed.
Connect-AzAccount -Tenant (Get-AzContext).Tenant.Id -ClaimsChallenge "<claims-challenge-token>"
Opcje rozwiązywania
Poproś administratora platformy Azure o wymuszenie uwierzytelniania wieloskładnikowego podczas logowania. Dzięki temu sesja może spełniać wymagania dostępu warunkowego bez dodatkowych kroków.
Jeśli wymuszanie uwierzytelniania wieloskładnikowego podczas logowania nie jest możliwe, użyj parametru ClaimsChallenge , aby uwierzytelnić się interaktywnie:
Connect-AzAccount -Tenant (Get-AzContext).Tenant.Id -ClaimsChallenge "<claims-challenge-token>"
Aby uzyskać więcej informacji, zobacz Planowanie obowiązkowego uwierzytelniania wieloskładnikowego dla platformy Azure i innych portali administracyjnych
Błąd ROPC: z powodu zmiany konfiguracji wprowadzonej przez administratora
Logując się do Azure przy użyciu hasła, używasz przepływu poświadczeń hasła właściciela zasobu (ROPC). Ta metoda uwierzytelniania nie obsługuje uwierzytelniania wieloskładnikowego. Oto przykład:
Connect-AzAccount -Credential $Credential
Jeśli konto użytkownika wymaga uwierzytelniania wieloskładnikowego, polecenie kończy się niepowodzeniem z następującym błędem:
Connect-AzAccount : UsernamePasswordCredential authentication failed: Response status code does not
indicate success: 400 (BadRequest). See the troubleshooting guide for more information
https://aka.ms/azsdk/net/identity/usernamepasswordcredential/troubleshoot
Rozwiązanie: Użyj metody uwierzytelniania zgodnej z usługą MFA.
Ostrzeżenie między tenantami: Uwierzytelnianie nie powiodło się przeciwko tenantowi
Jeśli masz dostęp do kilku dzierżaw, a jedna z nich wymaga uwierzytelniania wieloskładnikowego, program Azure PowerShell może wyświetlić następujące ostrzeżenie:
WARNING: Unable to acquire token for tenant '00000000-0000-0000-0000-000000000000' with error
'Authentication failed against tenant 00000000-0000-0000-0000-000000000000. User interaction is
required. This may be due to the conditional access policy settings such as multi-factor
authentication (MFA). If you need to access subscriptions in that tenant, please rerun
'Connect-AzAccount' with additional parameter '-TenantId 00000000-0000-0000-0000-000000000000.'
Program Azure PowerShell próbuje zalogować się przy użyciu pierwszej napotkanej dzierżawy podczas logowania. Jeśli ten tenant wymaga uwierzytelniania wieloskładnikowego, uwierzytelnianie może zakończyć się niepowodzeniem. Aby uniknąć tego problemu, jawnie określ dzierżawcę docelowego przy użyciu parametru TenantId:
Connect-AzAccount -TenantId 00000000-0000-0000-0000-000000000000
Gwarantuje to, że uwierzytelnianie jest realizowane dla właściwej dzierżawy, co zmniejsza prawdopodobieństwo błędów związanych z uwierzytelnianiem wieloskładnikowym.
Komunikaty ogłoszeniowe 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 upewnić się, że komunikaty nie wpływają na Twoje doświadczenie użytkownika, istnieją pewne scenariusze automatyzacji, w których mogą mieć wpływ na korzystanie. Jeśli wystąpią problemy, zalecamy tłumienie 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 wyskakujące WAM nie wyświetla opcji Konto służbowe i szkolne.
- 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 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 zakresie użytkownika obecnie zalogowanego w programie 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 uznany za przestarzały 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, co oznacza, że wszelkie dalsze użytkowanie odbywa się na własną odpowiedzialność i ryzyko 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 otrzymasz błędy zgłaszające, że Galeria PowerShell jest nieosiągalna z Install-Module, 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 informacji o ustawieniach serwera proxy oraz sposobie konfigurowania ich dla Twojego środowiska.
Sam program PowerShell może nie być skonfigurowany do automatycznego używania 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 systemu operacyjnego są poprawnie skonfigurowane, ta konfiguracja kieruje żądania programu PowerShell za pośrednictwem serwera 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 instancję obiektu
Komunikat "referencja do obiektu nie jest przypisana do instancji obiektu" oznacza, że odwołujesz się do obiektu mającego wartość null lub do zasobu Azure, który nie istnieje albo do którego 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 poleceń 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 obszarze Az.Resources teraz obsługują parametry zapytania i 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
W związku z ograniczeniami obecnego interfejsu API Graph, zasady 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 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 dowolnej komendy Az PowerShell, zostanie zwrócony następujący komunikat przez 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'.
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 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 uznany za przestarzały 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, co oznacza, że wszelkie dalsze użytkowanie odbywa się na własną odpowiedzialność i 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ślną przeglądarką jest Microsoft Edge, możesz napotkać następujący błąd podczas próby interaktywnego zalogowania się do platformy Azure za pomocą 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 w domenie dotyczący zweryfikowanego identyfikatora URI podstawowej jednostki usługi
Błąd: Wartości właściwości identifierUris muszą używać zweryfikowanej domeny organizacji lub jej poddomeny jest wyświetlany podczas uruchamiania New-AzADServicePrincipal lub New-AzADApplication.
Z powodu przełomowej zmiany w Microsoft Entra, która wymaga, aby URI AppId w aplikacjach jednogrzebieniowych używały domyślnego schematu 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ż przeprowadzić aktualizację modułu Az PowerShell do wersji 6.0 lub nowszej.
Linia czasu
Wymóg wszedł w życie 15 października 2021 r.
Dotknięte wersje
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-preview lub starszej.
- 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 zaktualizować do wcześniej opisanych modułów PowerShell, możesz skorzystać z następujących kroków podczas tworzenia obiektu zasadniczego usługi:
- W razie potrzeby dodaj niestandardową nazwę domeny przy użyciu centrum administracyjnego firmy Microsoft Entra
- Tworzenie aplikacji z zaakceptowanym identyfikatorem IdentifierUri
- Utwórz główną jednostkę usługi odwołującą się do tej aplikacji
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.
Azure PowerShell