Dela via


Felsökning av Az PowerShell-modulen

Aktivera loggning för felsökning

Ett av de första stegen du bör utföra när du felsöker ett problem med Az PowerShell-modulen är att aktivera felsökningsloggning.

Om du vill aktivera felsökningsloggning per kommando anger du parametern Debug.

Get-AzResource -Name 'DoesNotExist' -Debug

Om du vill aktivera felsökningsloggning för en hel PowerShell-session anger du värdet för variabeln DebugPreference till Continue.

$DebugPreference = 'Continue'

Känt problem: Det går inte att installera Az-moduler från MAR

När du installerar vissa Az PowerShell-moduler från Microsoft Artifact Registry (MAR) med PSResourceGet kan det uppstå ett fel som:

Install-PSResource: Package(s) 'Az.Keyvault' could not be installed from repository 'MAR'.

Anmärkning

Som en tillfällig lösning installerar du modulen från en annan lagringsplats, till exempel PowerShell-galleriet, tills problemet har lösts.

Mer information finns i Bugfix för att jämföra filsökvägsnamn för att fastställa exakt matchning.

Felsöka multifaktorautentisering (MFA)

Interaktiva inloggningsfel

Om du får fel när du kör Azure PowerShell-cmdletar som skapar, ändrar eller tar bort resurser kan problemet orsakas av en princip för villkorsstyrd åtkomst för Microsoft Entra-ID som kräver multifaktorautentisering (MFA).

Dessa fel uppstår vanligtvis när MFA krävs av principen men inte framtvingas under inloggningen.

SharedTokenCacheCredential-autentisering är inte tillgänglig

Du kan se det här felet när du använder:

  • Az PowerShell-modulversion 14.2.0 eller tidigare
  • Az.Accounts PowerShell-modul 5.1.1 eller tidigare
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.

Uppgradera till följande versioner eller senare för att få mer informativa felmeddelanden och principinformation:

  • Az PowerShell-modul: version 14.3.0 eller senare
  • Az.Accounts-modul : version 5.2.0 eller senare

Resursen tilläts inte av principen

Det här felet uppstår i nyare modulversioner (Az 14.3.0+ och Az.Accounts 5.2.0+), där MFA krävs av villkorsstyrd åtkomst för specifika åtgärder.

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>"

Lösningsalternativ

  • Be Azure-administratören att framtvinga MFA vid inloggning. På så sätt kan sessionen uppfylla kraven för villkorsstyrd åtkomst utan ytterligare steg.

  • Om MFA-tvingande vid inloggning inte är möjligt använder du parametern ClaimsChallenge för att autentisera interaktivt:

    Connect-AzAccount -Tenant (Get-AzContext).Tenant.Id -ClaimsChallenge "<claims-challenge-token>"
    

Mer information finns i Planera för obligatorisk multifaktorautentisering för Azure och andra administratörsportaler

ROPC-fel: På grund av en konfigurationsändring som gjorts av administratören

Du använder ropc-flödet (Resource Owner Password Credential) när du loggar in på Azure med ett lösenord. Den här autentiseringsmetoden stöder inte MFA. Här är ett exempel:

Connect-AzAccount -Credential $Credential

Om användarkontot kräver MFA misslyckas kommandot med följande fel:

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

Lösning: Använd en autentiseringsmetod som är kompatibel med MFA.

Varning mellan hyresgäster: Autentiseringen misslyckades mot hyresgästen

Om du har åtkomst till flera klienter och en av dem kräver MFA kan Azure PowerShell visa följande varning:

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

Azure PowerShell försöker logga in med den första klient som hittades vid inloggning. Om klientorganisationen tillämpar MFA kan autentiseringen misslyckas. Undvik det här problemet genom att uttryckligen ange målklientorganisationen med parametern TenantId:

Connect-AzAccount -TenantId 00000000-0000-0000-0000-000000000000

Detta säkerställer att autentiseringen görs mot rätt klientorganisation, vilket minskar sannolikheten för MFA-relaterade fel.

Meddelandemeddelanden i automatiseringsscenarier

När du ansluter till Azure med Azure PowerShell visas meddelanden med hjälp av PowerShells informationsström för att förhindra att de ändrar de returnerade objektbaserade utdata. Även om vi har gjort allt vi kan för att säkerställa att meddelandena inte påverkar din upplevelse finns det vissa automatiseringsscenarier där de kan påverka användningen. Om du får problem rekommenderar vi att du undertrycker informationsströmmen i dessa scenarier:

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

Webbkontoansvarig (WAM)

  • Den interaktiva inloggningsmetoden kan inte öppna ett fönster för WAM och returnerar felet: Användaren avbröt autentiseringen.
  • Azure PowerShell-cmdletar kan inte köras efter inloggning med användarnamn och lösenord eller enhetskod.
  • WAM-popup-fönstret visar inte alternativet Arbets- och skolkonto .
  • Den interaktiva inloggningsmetoden kan inte öppna ett WAM-fönster i Windows PowerShell ISE-konsolen.

Lösningen på dessa problem är att inaktivera WAM:

Update-AzConfig -EnableLoginByWam $false
  • WAM-popupfönster för att välja ett konto är inte lätt att hitta. Minimera andra fönster för att hitta popup-fönstret.

Installation

Det här avsnittet innehåller en lista över lösningar på vanliga problem när du installerar Az PowerShell-modulen.

Az- och AzureRM-samexistens

Varning

Vi stöder inte att både AzureRM- och Az PowerShell-modulerna är installerade i Windows PowerShell 5.1 samtidigt.

I ett scenario där du behöver installera både AzureRM- och Az PowerShell-modulen i samma Windows-system:

  • AzureRM får endast installeras i det aktuella användaromfånget för Windows PowerShell 5.1.
  • Installera Az PowerShell-modulen i PowerShell 7.2 eller senare.

Varning

AzureRM PowerShell-modulen har officiellt avvecklats från och med den 29 februari 2024. Användare rekommenderas att migrera från AzureRM till Az PowerShell-modulen för att säkerställa fortsatt support och uppdateringar.

Även om AzureRM-modulen kanske fortfarande fungerar, underhålls eller stöds den inte längre, vilket innebär att fortsatt användning sker på användarens eget ansvar och risk. Se våra migreringsresurser för vägledning om övergången till Az-modulen.

Visual Studio

Äldre versioner av Visual Studio kan installera Azure PowerShell som en del av Azure Development-arbetsbelastningen, som installerar AzureRM-modulen. Azure PowerShell kan tas bort med installationsprogrammet för Visual Studio eller med hjälp av "Avinstallera" i appar och funktioner. Om du redan har installerat PowerShell 7.x kan du behöva installera Az PowerShell-modulen manuellt.

Proxy blockerar anslutning

Om du får fel från Install-Module att PowerShell-galleriet inte kan nås, kan det bero på att du befinner dig bakom en proxy. Olika operativsystem och nätverksmiljöer har olika krav för att konfigurera en systemomfattande proxy. Kontakta systemadministratören för dina proxyinställningar och hur du konfigurerar dem för din miljö.

Själva PowerShell kan inte konfigureras för att använda den här proxyn automatiskt. Med PowerShell 5.1 och senare konfigurerar du PowerShell-sessionen så att den använder en proxy med hjälp av följande kommandon:

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

Om dina autentiseringsuppgifter för operativsystemet är korrekt konfigurerade dirigerar den här konfigurationen PowerShell-begäranden via proxyn. För att den här inställningen ska finnas kvar mellan sessionerna lägger du till kommandona i en PowerShell-profil.

För att installera paketet måste proxyn tillåta till HTTPS-anslutningar www.powershellgallery.com.

Objektreferensen är inte inställd på en instans av ett objekt

Meddelandet "objektreferensen är inte inställd på en instans av ett objekt" innebär att du refererar till ett objekt som är null eller en Azure-resurs som inte finns eller som du inte har behörighet att komma åt.

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

Du kan använda cmdleten Get-AzResource för att kontrollera att den angivna Azure-resursen finns.

Get-AzResource -ResourceId $resourceId

Behörighetsproblem med AzAD cmdlets

Az PowerShell-modulen använder Microsoft Graph API. Att administrera eller hantera resurser i Azure med Az PowerShell-modulen kräver samma behörigheter som att utföra den identiska uppgiften från Azure-portalen eller något annat Azure-kommandoradsverktyg. Specifika frågor om behörigheter finns i referensen Microsoft Graph-behörigheter.

Microsoft Graph-frågeparametrar

AzAd-cmdletar under Az.Resources stöder nu frågeparametrar och sökfrågeparametrar. Mer information om syntaxen finns i länkarna som du refererade till tidigare.

Get-AzAdGroupMember returnerar inte tjänstens huvudnamn

På grund av begränsningar med det aktuella Graph-API:et returneras inte tjänstens huvudnamn av Get-AzAdGroupMember i Az 7.x. Som en lösning kan Invoke-AzRestMethod användas med betaversionen av Microsoft Graph API.

I följande exempel krävs Az PowerShell-modulen. Ersätt myGroupName på den första raden med namnet på din grupp.

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

Kommandot hittades men kunde inte läsas in

Följande meddelande returneras av PowerShell när du försöker köra något av Az PowerShell-kommandona.

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

Det här meddelandet inträffar när du har både Az- och AzureRM PowerShell-modulerna installerade på samma Windows-baserade system och de finns i $env:PSModulePath för samma version av PowerShell.

Viktigt!

När AzureRM installeras i AllUsers omfånget för Windows PowerShell installeras det på en plats som ingår i $env:PSModulePath för PowerShell 7. Detta stöds inte på grund av konflikter mellan AzureRM- och Az PowerShell-modulerna.

Både Az och AzureRM kan samexistera i samma Windows-system, men bara om AzureRM är installerat i omfånget CurrentUser för Windows PowerShell och Az installerat i PowerShell 7. Mer information finns i Installera Az PowerShell-modulen.

Varning

AzureRM PowerShell-modulen har officiellt avvecklats från och med den 29 februari 2024. Användare rekommenderas att migrera från AzureRM till Az PowerShell-modulen för att säkerställa fortsatt support och uppdateringar.

Även om AzureRM-modulen kanske fortfarande fungerar, underhålls eller stöds den inte längre, vilket innebär att fortsatt användning sker på användarens eget ansvar och risk. Se våra migreringsresurser för vägledning om övergången till Az-modulen.

I MacOS returneras ett fel när Nyckelringsauktorisering misslyckas

När du kör Azure PowerShell på MacOS kan det uppstå ett felmeddelande när du försöker logga in på ditt Azure-konto från en PowerShell-session.

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

Som en lösning på det här problemet kan du inaktivera lagring av autentiseringsuppgifter mellan sessioner genom att köra följande kommando. När du har gjort den här ändringen måste du dock köra Connect-AzAccount varje gång du startar en ny PowerShell-session.

Disable-AzContextAutosave

Anslutningen för den här webbplatsen är inte säker

När standardwebbläsaren är Microsoft Edge kan det uppstå följande fel när du försöker logga in på Azure interaktivt med Connect-AzAccount: "Anslutningen för den här webbplatsen är inte säker." Lös problemet genom att gå till edge://net-internals/#hsts i Microsoft Edge. Lägg till localhost under "Ta bort domänsäkerhetsprincip" och klicka på Ta bort.

Fel med verifierad domän för tjänstens Principal IdentifierUri

Fel: Värden för egenskapen identifierUris måste använda en verifierad domän för organisationen eller så visas dess underdomän när den körs New-AzADServicePrincipal eller New-AzADApplication.

På grund av den störande ändringen i Microsoft Entra, som gör att AppId Uri i enskild klients applikationer måste använda standardschema eller verifierade domäner, måste du uppgradera Az.Resources-modulen till version 4.1.0 eller senare för att fortsätta använda New-AzADServicePrincipal eller New-AzADApplication cmdletar.

Du kan också uppgradera till Az PowerShell-modul version 6.0 eller senare.

Tidslinje

Kravet trädde i kraft den 15 oktober 2021.

Påverkade versioner

Följande versioner av Azure PowerShell påverkas av den brytande ändringen i AzureAD:

  • Az.Resources PowerShell-modul version 3.5.1-preview eller mindre.
  • Az PowerShell-modul version 5.9.0 eller mindre.

Om du fortfarande stöter på problem efter uppgraderingen kan du öppna ett problem.

Övergångslösning

Om du inte kan uppgradera till PowerShell-modulerna som beskrevs tidigare kan du följa dessa steg när du skapar ett huvudnamn för tjänsten:

Övriga frågor

Om du upplever ett produktproblem med Azure PowerShell som inte finns med i den här artikeln eller om du behöver ytterligare hjälp kan du skapa ett problem på GitHub.