Dela via


Felsökning av Az PowerShell-modul

Aktivera felsökningsloggning

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'

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

Webbkontochef (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-popupfö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 val av 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 är officiellt inaktuell 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 fortfarande kan fungera, underhålls den inte längre eller stöds, vilket gör att användaren kan välja och riskera fortsatt användning. 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 Visual Studio-installationsprogrammet eller genom att använda "Avinstallera" i appar & features. 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 är 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ö.

PowerShell själv kanske 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. Om du vill att den här inställningen ska sparas mellan sessioner lägger du till kommandona i din PowerShell-profil.

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

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

Meddelandet "objektreferens som inte har angetts till 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 cmdlets 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.

Viktig

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 finnas på samma Windows-system, men bara om AzureRM är installerat i CurrentUser omfånget för Windows PowerShell och Az installerat i PowerShell 7. Mer information finns i Installera Az PowerShell-modulen.

Varning

AzureRM PowerShell-modulen är officiellt inaktuell 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 fortfarande kan fungera, underhålls den inte längre eller stöds, vilket gör att användaren kan välja och riskera fortsatt användning. 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 huvudnamnsidentifierare

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

På grund av den icke-bakåtkompatibla ändringen i Microsoft Entra som kräver att AppId Uri i applikationer med en enda hyresgäst (single tenant) måste använda antingen standardschemat eller verifierade domäner, måste du uppgradera modulen Az.Resources till version 4.1.0 eller senare för att fortsätta använda cmdlets som New-AzADServicePrincipal eller New-AzADApplication.

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 brytande ändring 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, du kan öppna ett ärende.

Alternativ lö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:

Andra problem

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