デバッグログを有効化する
Az PowerShell モジュールの問題のトラブルシューティングで最初に実行する必要がある手順の 1 つは、デバッグ ログを有効にすることです。
コマンドごとにデバッグ ログを有効にするには、 Debug パラメーターを指定します。
Get-AzResource -Name 'DoesNotExist' -Debug
PowerShell セッション全体のデバッグ ログを有効にするには、 DebugPreference 変数の値を Continue
に設定します。
$DebugPreference = 'Continue'
自動化シナリオでのアナウンス メッセージ
Azure PowerShell を使用して Azure に接続すると、返されたオブジェクト ベースの出力が変更されないように、PowerShell の情報ストリームを使用してアナウンス メッセージが表示されます。 お知らせメッセージがエクスペリエンスに影響しないようにあらゆる努力をしてきましたが、使用に影響を与える可能性のある自動化シナリオがいくつかあります。 問題が発生した場合は、これらのシナリオでは情報ストリームを抑制することをお勧めします。
Connect-AzAccount -Subscription '<subscription name or id>' -InformationAction Ignore
Web アカウント マネージャー (WAM)
- 対話型のサインイン方法では WAM のウィンドウを開くことができず、エラー「ユーザーによって認証が取り消されました」が返されます。
- ユーザー名とパスワードまたはデバイス コードを使用してログインした後、Azure PowerShell コマンドレットを実行することはできません。
- WAM ポップアップ ウィンドウに [職場と学校アカウント] オプションが表示されません。
- 対話型サインインメソッドは、Windows PowerShell ISE コンソールで WAM ウィンドウを開くことはありません。
これらの問題の回避策は、WAM を無効にすることです。
Update-AzConfig -EnableLoginByWam $false
- アカウントを選択するための WAM ポップアップ ウィンドウは簡単に見つかりません。 ポップアップ ウィンドウを見つけるには、他のウィンドウを最小化します。
取り付け
このセクションには、Az PowerShell モジュールをインストールするときの一般的な問題の解決策の一覧が含まれています。
Az と AzureRM の共存
Warnung
Windows PowerShell 5.1 では、AzureRM と Az PowerShell の両方のモジュールを同時にインストールすることはサポートされていません。
AzureRM と Az PowerShell モジュールの両方を同じ Windows システムにインストールする必要がある場合は、次のようにします。
- AzureRM は、Windows PowerShell 5.1 の現在のユーザー スコープにのみインストールする必要があります。
- PowerShell 7.2 以降に Az PowerShell モジュールをインストールします。
Warnung
AzureRM PowerShell モジュールは、2024 年 2 月 29 日の時点で正式に非推奨になりました。 ユーザーは、引き続きサポートと更新を行うために、AzureRM から Az PowerShell モジュールに移行することをお勧めします。
AzureRM モジュールの機能は今後も使用できますが、メンテナンスやサポートは行われないため、引き続きの使用はユーザーの判断に委ねられ、リスクが発生することがあります。 Az モジュールへの移行に関するガイダンスについては、移行リソースを参照してください。
Visual Studio
以前のバージョンの Visual Studio では、Azure 開発ワークロードの一部として Azure PowerShell がインストールされる場合があり、これにより AzureRM モジュールがインストールされます。 Azure PowerShell は、Visual Studio インストーラーを使用するか、アプリと機能の [アンインストール] を使用して削除できます。 PowerShell 7.x を既にインストールしている場合は、Az PowerShell モジュールを 手動でインストール することが必要になる場合があります。
プロキシによる接続のブロック
PowerShell ギャラリーにアクセスできないというエラーが Install-Module
から発生した場合、プロキシ経由で接続している可能性があります。 システム全体のプロキシを構成するための要件は、オペレーティング システムとネットワーク環境によってさまざまに異なります。 プロキシ設定と、ご使用の環境での構成方法については、システム管理者にお問い合わせください。
PowerShell 自体は、このプロキシを自動的に使用するように構成されていない場合があります。 PowerShell 5.1 以降では、次のコマンドを使用して、プロキシを使用するように PowerShell セッションを構成します。
$webClient = New-Object -TypeName System.Net.WebClient
$webClient.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
オペレーティング システムの資格情報が正しく構成されている場合、この構成ではプロキシ経由で PowerShell 要求がルーティングされます。 セッション間でこの設定を保持するには、 PowerShell プロファイルにコマンドを追加します。
パッケージをインストールするには、プロキシで www.powershellgallery.com への HTTPS 接続を許可する必要があります。
オブジェクト参照がオブジェクトのインスタンスに設定されていない
"オブジェクト参照がオブジェクトのインスタンスに設定されていません" というメッセージは、null または存在しない Azure リソースまたはアクセス許可がないオブジェクトを参照していることを意味します。
$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.
Get-AzResource
コマンドレットを使用して、指定した Azure リソースが存在することを確認できます。
Get-AzResource -ResourceId $resourceId
AzAD コマンドレットに関するアクセス許可の問題
Az PowerShell モジュールでは、Microsoft Graph API を使用します。 Az PowerShell モジュールを使用して Azure 内のリソースを管理または管理するには、Azure portal またはその他の Azure コマンドライン ツールから同じタスクを実行するのと同じアクセス許可が必要です。 アクセス許可に関する具体的な質問については、 Microsoft Graph のアクセス許可リファレンスを参照してください。
Microsoft Graph クエリ パラメーター
Az.Resources の AzAd コマンドレットで、クエリ パラメーターと検索クエリ パラメーターがサポートされるようになりました。 構文の詳細については、前述のリンクを参照してください。
Get-AzAdGroupMember コマンドはサービス プリンシパルを返しません
現在の Graph API の制限により、Az 7.x の Get-AzAdGroupMember ではサービス プリンシパルは返されません。 回避策として、 Invoke-AzRestMethod は Microsoft Graph API のベータ版で使用できます。
次の例では、Az PowerShell モジュールが必要です。 最初の行の myGroupName
をグループの名前に置き換えます。
$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'}}
コマンドが見つかりましたが読み込めませんでした
Az PowerShell コマンドのいずれかを実行しようとすると、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'.
このメッセージは、Az モジュールと AzureRM PowerShell モジュールの両方が同じ Windows ベースのシステムにインストールされていて、同じバージョンの PowerShell の $env:PSModulePath に存在する場合に発生します。
Von Bedeutung
AzureRM が Windows PowerShell の AllUsers
スコープにインストールされると、PowerShell 7 の $env:PSModulePath
の一部である場所にインストールされます。 これは、AzureRM と Az PowerShell モジュール間の競合が原因でサポートされていません。
Az と AzureRM の両方を同じ Windows システムに共存させることができるのは、AzureRM が Windows PowerShell の CurrentUser
スコープにインストールされ、Az が PowerShell 7 にインストールされている場合のみです。 詳細については、「 Az PowerShell モジュールのインストール」を参照してください。
Warnung
AzureRM PowerShell モジュールは、2024 年 2 月 29 日の時点で正式に非推奨になりました。 ユーザーは、引き続きサポートと更新を行うために、AzureRM から Az PowerShell モジュールに移行することをお勧めします。
AzureRM モジュールの機能は今後も使用できますが、メンテナンスやサポートは行われないため、引き続きの使用はユーザーの判断に委ねられ、リスクが発生することがあります。 Az モジュールへの移行に関するガイダンスについては、移行リソースを参照してください。
MacOS では、KeyChain の承認が失敗するとエラーが返されます
MacOS で Azure PowerShell を実行すると、PowerShell セッションから Azure アカウントにサインインしようとしたときにエラー メッセージが表示されることがあります。
DeviceCodeCredential authentication failed: Persistence check failed. Reason: KeyChain authorization/authentication failed. .Error code: -25293. OS error code -25293.
この問題の回避策として、次のコマンドを実行して、セッション間での資格情報の格納を無効にできます。 ただし、この変更を行った後は、新しい PowerShell セッションを開始するたびに Connect-AzAccount
を実行する必要があります。
Disable-AzContextAutosave
このサイトの接続はセキュリティで保護されていません
既定のブラウザーが Microsoft Edge の場合、 Connect-AzAccount
を使用して対話形式で Azure にログインしようとすると、"このサイトの接続はセキュリティで保護されていません。" というエラーが発生する可能性があります。この問題を解決するには、Microsoft Edge の edge://net-internals/#hsts にアクセスしてください。 [localhost
] の下にを追加し、[削除] をクリックします。
サービス プリンシパル IdentifierUri 検証済みドメイン エラー
または New-AzADServicePrincipal
を実行すると、"New-AzADApplication
" というエラーが表示されます。
Microsoft Entra の破壊的変更により、 シングル テナント アプリケーションで AppId URI が既定のスキームまたは検証済みドメインの使用を要求 されるため、 az.Resources モジュールをバージョン 4.1.0 以降にアップグレードして、 New-AzADServicePrincipal
または New-AzADApplication
コマンドレットを引き続き使用する必要があります。
Az PowerShell モジュール バージョン 6.0 以降にアップグレードすることもできます。
タイムライン
要件は、2021 年 10 月 15 日に有効になりました。
影響を受けたバージョン
次のバージョンの Azure PowerShell は、AzureAD の破壊的変更の影響を受けます。
- Az.Resources PowerShell モジュール バージョン 3.5.1 - プレビュー 以下。
- Az PowerShell モジュール バージョン 5.9.0 以下。
アップグレード後も問題が引き続き発生する場合は、お気軽にイシューを開いてください。
対処法
前に説明した PowerShell モジュールにアップグレードできない場合は、サービス プリンシパルを作成するときに次の手順に従うことができます。
- 必要に応じて、 Microsoft Entra 管理センターを使用してカスタム ドメイン名を追加します
- 承認済みの IdentifierUri を使用してアプリケーションを作成する
- このアプリケーションを参照するサービス プリンシパルを作成する
その他の問題
この記事に記載されていない Azure PowerShell の製品に関する問題が発生した場合、またはさらに支援が必要な場合は、GitHub で問題を報告してください。
Azure PowerShell