0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure PowerShellでの初回サインイン失敗時のエラー対応

Last updated at Posted at 2024-09-05

概要

Azureの某ハンズオン本でAzure PowerShellを使用してサインインしようとしたところ、エラーが出た。

環境

Windows10 Home 22H2
PowerShell 5.1.19041.4780

エラー内容

前提として、PowerShellでAzure PowerShellモジュールがインストール済であること。ここではモジュールインストールについては解説しないので他記事を参照頂きたい。

PS C:\> Install-Module az

この後、サインインのコマンドレットを実行する。

# サインイン
PS C:\>  Connect-AzAccount
# サインイン(多要素認証設定済の場合)
PS C:\>  Connect-AzAccount -TenantId aaaa-bbbb-ccccc-00000 #引数でテナントIDを指定する必要がある

すると、エラーが表示された。

Connect-AzAccount : 'Connect-AzAccount' コマンドはモジュール 'Az.Accounts' で見つかりましたが、このモジュールを読み込むことができませんでした。
詳細については、'Import-Module Az.Accounts' を実行してください。
発生場所 行:1 文字:1
+ Connect-AzAccount -TenantId aaaa-bbbb-ccccc-00000
+ ~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Connect-AzAccount:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CouldNotAutoloadMatchingModule

原因

エラーメッセージに書いてある通り、Import-Module Az.Accountsコマンドレットを実行してみる。

PS C:\> Import-Module Az.Accounts
Import-Module : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Program Files\WindowsPowerShell\Modules\Az.Accounts\3.0.4\A
z.Accounts.psm1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照
してください。
発生場所 行:1 文字:1
+ Import-Module Az.Accounts
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : セキュリティ エラー: (: ) [Import-Module]、PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess,Microsoft.PowerShell.Commands.ImportModuleCommand

どうやら、PowerShellの実行ポリシーが制限されていたことが原因らしい。

解決策

PowerShellの実行ポリシーを変更する。実行ポリシーは5段階あり、現在はRestrictedになっていたため全スクリプトの実行が禁止されていた。(初期設定)
今回のような通常のケースでは、ローカルスクリプトとネットからDLした署名付きスクリプトにのみ実行を許可するRemoteSignedへの変更が妥当と思われる。

よりポリシーを緩くすることもできるが、その分セキュリティリスクは高くなる。5段階のポリシーの詳しい条件については下記記事に記載があるので、参照の上自身のセキュリティ要件に適切なポリシーを選択頂きたい。

現在のポリシーを確認する

PS C:\> Get-ExecutionPolicy
Restricted

RemoteSignedへのポリシー変更。確認メッセージが表示されるので、Yを入力。

PS C:\>  Set-ExecutionPolicy RemoteSigned

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピック
(https://go.microsoft.com/fwlink/?LinkID=135170) で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"): Y
PS C:\>

ポリシーが変更され、コマンドレットを実行できるようになった

PS C:\> Get-ExecutionPolicy
RemoteSigned

余談

・MS社の公式ドキュメント通りにサインインする場合は、ポリシー変更手順も記述されている為本エラーは発生しない想定。
・ポリシー変更時に、現在開いているPowerShellのプロセスのみ、または現在のユーザのみへの対象を絞ったポリシー変更も可能。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?