Řešení potíží s modulem Az PowerShell
Povolte protokolování ladění
Jedním z prvních kroků při řešení potíží s modulem Az PowerShell je povolení protokolování ladění.
Pokud chcete povolit protokolování ladění pro jednotlivé příkazy, zadejte parametr Debug.
Get-AzResource -Name 'DoesNotExist' -Debug
Pokud chcete povolit protokolování ladění pro celou relaci PowerShellu, nastavte hodnotu proměnné DebugPreference na Continue
.
$DebugPreference = 'Continue'
Zprávy oznámení ve scénářích automatizace
Při připojování k Azure pomocí Azure PowerShellu se zprávy oznámení zobrazují pomocí informačního streamu PowerShellu, aby se zabránilo změnám vráceného výstupu na základě objektu. I když jsme se snažili zajistit, aby zprávy s oznámeními neměly vliv na vaše prostředí, existují některé scénáře automatizace, ve kterých můžou mít vliv na využití. Pokud dojde k problémům, doporučujeme v těchto scénářích potlačit informační stream:
Connect-AzAccount -Subscription '<subscription name or id>' -InformationAction Ignore
Správce webových účtů (WAM)
- Interaktivní metoda přihlašování nemůže otevřít okno pro WAM a vrátí chybu: uživatel zrušil ověřování.
- Rutiny Azure PowerShellu se po přihlášení pomocí uživatelského jména a hesla nebo kódu zařízení nedají spustit.
- Automaticky otevírané okno WAM nezobrazuje možnost pracovního a školního účtu .
- Interaktivní metoda přihlašování nemůže otevřít okno WAM v konzole prostředí Windows PowerShell ISE.
Alternativním řešením těchto problémů je zakázat WAM:
Update-AzConfig -EnableLoginByWam $false
- Vyskakovací okno WAM pro výběr účtu není snadné najít. Minimalizujte ostatní okna a vyhledejte automaticky otevírané okno.
Instalace
Tato část obsahuje seznam řešení běžných problémů při instalaci modulu Az PowerShell.
Koexistence Az a AzureRM
Varování
Nepodporujeme instalaci modulů AzureRM i Az PowerShell ve Windows PowerShellu 5.1 současně.
Ve scénáři, ve kterém potřebujete nainstalovat modul AzureRM i Az PowerShell do stejného systému Windows:
- AzureRM musí být nainstalovaný jenom v aktuálním oboru uživatele Windows PowerShellu 5.1.
- Nainstalujte modul Az PowerShell v PowerShellu 7.2 nebo novějším.
Varování
Modul AzureRM PowerShell byl od 29. února 2024 oficiálně zastaralý. Uživatelům se doporučuje migrovat z AzureRM do modulu Az PowerShell, aby se zajistila nepřetržitá podpora a aktualizace.
I když může modul AzureRM stále fungovat, už není udržován ani podporován, a jakékoli další použití je na uvážení a riziko uživatele. Pokyny k přechodu na modul Az najdete v našich prostředcích pro migraci.
Visual Studio
Starší verze sady Visual Studio můžou nainstalovat Azure PowerShell jako součást úlohy vývoje Pro Azure, která nainstaluje modul AzureRM. Azure PowerShell je možné odebrat pomocí instalačního programu sady Visual Studio nebo pomocí možnosti Odinstalovat v části Funkce aplikací &. Pokud jste už nainstalovali PowerShell 7.x, možná budete muset ručně nainstalovat modul Az PowerShell.
Proxy blokuje připojení
Pokud obdržíte chyby z Install-Module
, že PowerShell Gallery je nedostupná, může se stát, že se nacházíte za proxy serverem. Různé operační systémy a síťové prostředí mají různé požadavky na konfiguraci proxy serveru pro celý systém. Požádejte správce systému o nastavení proxy serveru a o tom, jak je nakonfigurovat pro vaše prostředí.
Samotný PowerShell nemusí být nakonfigurovaný tak, aby používal tento proxy server automaticky. V PowerShellu 5.1 a novějším nakonfigurujte relaci PowerShellu tak, aby používala proxy server pomocí následujících příkazů:
$webClient = New-Object -TypeName System.Net.WebClient
$webClient.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
Pokud jsou vaše přihlašovací údaje operačního systému správně nakonfigurované, tato konfigurace směruje požadavky PowerShellu přes proxy server. Aby bylo toto nastavení zachováno mezi relacemi, přidejte příkazy do profilu PowerShellu .
Pokud chcete balíček nainstalovat, musí proxy server povolit připojení HTTPS k www.powershellgallery.com.
Odkaz na objekt není nastaven na instanci objektu
Zpráva "odkaz na objekt není nastaven na instanci objektu" znamená, že odkazujete na objekt, který je null nebo prostředek Azure neexistuje nebo nemáte oprávnění k přístupu.
$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.
Pomocí rutiny Get-AzResource
můžete ověřit, že zadaný prostředek Azure existuje.
Get-AzResource -ResourceId $resourceId
Problémy s oprávněními u příkazů AzAD
Modul Az PowerShell používá rozhraní Microsoft Graph API. Správa nebo správa prostředků v Azure pomocí modulu Az PowerShell vyžaduje stejná oprávnění jako provedení stejné úlohy z webu Azure Portal nebo jakéhokoli jiného nástroje příkazového řádku Azure. Konkrétní dotazy k oprávněním naleznete v referenčních informacích k oprávněním Microsoft Graphu .
Parametry dotazu Microsoft Graphu
Rutiny AzAd v části Az.Resources teď podporují parametry dotazu a a parametry vyhledávacího dotazu . Podrobnosti o syntaxi najdete v odkazovaných odkazech.
Get-AzAdGroupMember nevrací služební identifikátory
Kvůli omezením aktuálního rozhraní Graph API se instanční objekty nevrací Get-AzAdGroupMember v Az 7.x. Alternativním řešením je Invoke-AzRestMethod použít s beta verzí rozhraní Microsoft Graph API.
Následující příklad vyžaduje modul Az PowerShell. Nahraďte myGroupName
v prvním řádku názvem vaší skupiny.
$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'}}
Příkaz byl nalezen, ale nelze ho načíst.
Následující zpráva se vrátí prostředím PowerShell při pokusu o spuštění některého z příkazů Az PowerShellu.
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'.
Tato zpráva se zobrazí, když máte moduly Az i AzureRM PowerShell nainstalované ve stejném systému Windows a existují v $env:PSModulePath pro stejnou verzi PowerShellu.
Důležitý
Když je AzureRM nainstalovaný v oboru AllUsers
prostředí Windows PowerShell, je nainstalovaný v umístění, které je součástí $env:PSModulePath
pro PowerShell 7. To se nepodporuje kvůli konfliktům mezi moduly AzureRM a Az PowerShell.
Az i AzureRM můžou existovat ve stejném systému Windows, ale jenom v případě, že je AzureRM nainstalovaný v CurrentUser
oboru Windows PowerShellu a Az nainstalovaného v PowerShellu 7. Další informace najdete v tématu Instalace modulu Az PowerShell.
Varování
Modul AzureRM PowerShell byl od 29. února 2024 oficiálně zastaralý. Uživatelům se doporučuje migrovat z AzureRM do modulu Az PowerShell, aby se zajistila nepřetržitá podpora a aktualizace.
Ačkoli modul AzureRM může stále fungovat, již není udržován ani podporován, a proto veškeré další použití probíhá na vlastní uvážení a riziko uživatele. Pokyny k přechodu na modul Az najdete v našich prostředcích pro migraci.
V systému MacOS se vrátí chyba, když selže autorizace klíčenky.
Při spuštění Azure PowerShellu v macOS se může při pokusu o přihlášení k účtu Azure z relace PowerShellu zobrazit chybová zpráva.
DeviceCodeCredential authentication failed: Persistence check failed. Reason: KeyChain authorization/authentication failed. .Error code: -25293. OS error code -25293.
Jako alternativní řešení tohoto problému můžete zakázat ukládání přihlašovacích údajů mezi relacemi spuštěním následujícího příkazu. Po provedení této změny ale musíte spustit Connect-AzAccount
pokaždé, když spustíte novou relaci PowerShellu.
Disable-AzContextAutosave
Připojení pro tento web není zabezpečené.
Pokud je vaším výchozím prohlížečem Microsoft Edge, při interaktivním pokusu o přihlášení k Azure pomocí Connect-AzAccount
může dojít k následující chybě: "Připojení pro tento web není zabezpečené." Pokud chcete tento problém vyřešit, navštivte edge://net-internals/#hsts v Microsoft Edgi. Pod "Odstranit zásady zabezpečení domény" přidejte localhost
a klikněte na Odstranit.
Chyba ověřené domény identifikátoru URI aplikačního objektu
Chyba: Hodnoty vlastnosti identifierUris musí používat ověřenou doménu organizace nebo její subdomény. se zobrazí při spuštění New-AzADServicePrincipal
nebo New-AzADApplication
.
Vzhledem k zásadní změně Microsoft Entra, která vyžaduje identifikátoru URI AppId v aplikacích s jedním tenantem, aby vyžadovala použití výchozího schématu nebo ověřených domén, musíte upgradovat modul Az.Resources na verzi 4.1.0 nebo novější, abyste mohli dál používat New-AzADServicePrincipal
nebo New-AzADApplication
rutiny.
Můžete také upgradovat na modul Az PowerShell verze 6.0 nebo novější.
Časová osa
Požadavek začal platit 15. října 2021.
Ovlivněné verze
Změna způsobující chybu AzureAD ovlivňuje následující verze Azure PowerShellu:
- Modul Az.Resources PowerShell verze 3.5.1-preview nebo nižší.
- Modul Az PowerShell verze 5.9.0 nebo nižší.
Pokud po upgradu stále narážíte na problémy, neváhejte otevřít problém .
Alternativní řešení
Pokud nemůžete upgradovat na dříve popsané moduly PowerShellu, můžete při vytváření principála služby postupovat podle těchto kroků:
- V případě potřeby přidejte vlastní název domény pomocí Centra pro správu Microsoft Entra
- Vytvoření aplikace s akceptovaným identifikátoremUri
- Vytvoření instančního objektu odkazujícího na tuto aplikaci
Další problémy
Pokud narazíte na problém s produktem Azure PowerShell, který není v tomto článku uveden, nebo potřebujete další pomoc, nahlásit problém na GitHubu.
Azure PowerShell