Dela via


Felsöka Az PowerShell-modulen

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 Felsök .

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

Web Account Manager (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 popup-fö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

Det går inte att ha PowerShell-modulerna AzureRM och Az installerade samtidigt i Windows PowerShell 5.1.

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 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 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 du vara bakom en proxyserver. Olika operativsystem och nätverksmiljöer har olika krav för att konfigurera en systemomfattande proxy. Systemadministratören kan ge dig information om proxyinställningarna 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 proxyn för PowerShell-sessionen med följande kommandon:

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

Om autentiseringsuppgifter för operativsystemet är rätt konfigurerade dirigerar den här konfigurationen PowerShell-begärandena genom 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 ATT 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-cmdletar

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 Portal eller något annat Azure-kommandoradsverktyg. Specifika frågor om behörigheter finns i referensen för 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 Omfånget AllUsers för Windows PowerShell installeras det på en plats som är en del av $env:PSModulePath för PowerShell 7. Det här stöds inte grund av konflikter mellan PowerShell-modulerna AzureRM och Az.

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 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 följande fel uppstå 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 så visas dess underdomän när den körs New-AzADServicePrincipal eller New-AzADApplication.

På grund av den icke-bakåtkompatibla ändringen i Microsoft Entra som kräver att AppId Uri i program för en enskild klientorganisation kräver användning av 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 icke-bakåtkompatibla ä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.

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