Azure AD PowerShell モジュールの制限環境でのインストール

Microsoft365

Microsoft365の各種サービスを利用するにあたり、アカウントやコンピューターの認証基盤となるのがAzure Active Directory(以下AzureAD)です。

そのAzure ADを効率的に管理するためにMicrosoftが提供しているのが「Azure AD PowerShell モジュール(以下AAD モジュール)」です。

企業規模が大きくなればなるほど大変なのがアカウントやコンピューターの管理。
WEBインターフェースでの管理は直感的でわかりやすいのですが、効率的かと言われると違います。
煩雑なアカウントやコンピューターの管理はコマンドベースで実施することを強くお勧めします。

さて、今回はAAD モジュールの管理用パソコンへのインストール方法をご紹介したいのですが、企業のセキュリティポリシーにより制限がかかっており、インストールコマンドが通らないケースもあるかと思いますので、その辺りにも触れていきます(私の会社ではそうでした)。

AzureAD モジュールは廃止の計画があり、Microsoft Graph PowerShell SDKに統合される予定です。
ただし現時点においてGraphのコマンドレットは充実しておらず、しばらくは併用する必要がありそうです。
Microsoft Graph PowerShell SDKについての詳細は「あわせて導入したいPowerShellモジュール」の項でご紹介しています。

AAD モジュールのインストール

早速ですが、AAD モジュールのインストールについて手順を解説していきます。

事前確認

AAD モジュールをインストールする前に事前確認を行っておきましょう。
確認すべき事項は2点です。

まずはインターネット接続を確認しましょう。
当たり前ですがAzure ADのコマンドレットの実行はインターネット接続がなければ行えません。

続いてPowerShellの実行ポリシーの確認です。
お使いOSの種類や企業のポリシーなどにより、デフォルトで厳しめのセキュリティ設定が施されているかもしれません。

管理者実行したPowerShellで以下のコマンドを発行し、現状のPowerShell実行ポリシーを確認します。

Get-ExecutionPolicy

実行ポリシーが「Restricted」だった場合、インストール時にエラーとなります。
以下のコマンドで実行ポリシーを「RemoteSigned」に変更します。

Set-ExecutionPolicy RemoteSigned

セキュリティの設定を緩めることになりますので、その仕様を確認しておきましょう。

実行ポリシー「RemoteSigned」とは
  • Windows サーバー コンピューターの既定の実行ポリシー。
  • スクリプトを実行できます。
  • 電子メールやインスタント メッセージング プログラムを含む、インターネットからダウンロードされるスクリプトと構成ファイルで、信頼できる発行元からのデジタル署名が必要です。
  • ローカル コンピューターに書き込まれ、インターネットからダウンロードされないスクリプトではデジタル署名は必要ありません。
  • コマンドレットを使用するなどしてスクリプトのブロックが解除されている場合は、インターネットからダウンロードされ、署名されていないスクリプトを Unblock-File 実行します。
  • インターネット以外のソースから署名されていないスクリプトを実行し、悪意のある可能性のある署名済みスクリプトを実行するリスクがあります。

引用:実行ポリシーについて – PowerShell | Microsoft Learn

インターネット経由でのインストール

まずはインターネット経由でのインストールを試みます。
管理者実行したPowerShellで以下のコマンドを発行し、AAD モジュールをインストールします。

Install-Module -Name AzureAD

NuGetなどメッセージに”Y”で応答し、インストールは完了です。

無事インストールは行えましたか?
インストールできたら「接続確認」の項に進んでください。

もしエラーとなり失敗した方は次項の「オフライン環境でのインストール」に進んでください。

オフライン環境でのインストール

インターネット経由でのインストールが行えない場合は別途モジュールをダウンロードし、手動でインストールを行うことが可能です。

まずはモジュールのダウンロードから。
インターネット接続が可能な適当なパソコンで最新の安定版をダウンロードしてください。

※ダウンロードページの上部に表示されるのが最新の安定版です。

[Manual Download]タブを選択し、[Download the raw nupkg file]をクリックします。

ここから先はオフライン作業が可能です。
他のパソコンでダウンロードのみ行った場合は、ダウンロードしたファイルをAAD モジュールをインストールするパソコンにコピーしておきましょう。

インストール対象のパソコンのPowerShellで以下のコマンドを発行し、ダウンロードした.nupkgファイルのブロックを解除します。

Unblock-File -Path C:\xxxxx\azuread.x.x.x.nupkg

※-Pathにはダウンロードした.nupkgファイルのパスを指定します。

続いて、ブロック解除したファイル「azuread.x.x.x.nupkg」の拡張子を「zip」に変更し、解凍します。

解凍されたフォルダ内はこのような構成となっていました。

解凍されたフォルダーの名前を「azuread.x.x.x」から「AzureAD」に変更します。

PowerShellで以下のコマンドを発行し、モジュールのインストール先パスを確認します。

$env:PSModulePath

私の環境では以下の出力がありました。

C:\Users\UserName\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules

ここに表示されたフォルダのいずれかに、展開した「AzureAD」フォルダをコピーすることでインストールは完了です。

なお、「C:\Program Files\WindowsPowerShell\Modules」にAAD モジュールを配置することでそのパソコンにサインインする全ユーザーのPowerShellに反映されます。
※このフォルダへのコピーには管理者権限が必要です。

これで手動でのインストールは完了です。

参考:.nupkgファイルのブロックを外さないと…

ダウンロードした.nupkgファイルのブロックを外さずに解凍してPowerShellモジュールインストールフォルダに配置した場合、モジュール自体は読み込まれますが以下のエラーとなりAzureADに接続できませんでした。

Connect-AzureAD : 用語 'Connect-AzureAD' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名
前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認して
から、再試行してください。
発生場所 行:1 文字:1
+ Connect-AzureAD
+ ~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Connect-AzureAD:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

接続確認

インストールが完了したら、さっそくAzureADへの接続確認を行ってみましょう。

以下の接続コマンドを発行します。

Connect-AzureAD

※xxxxには自テナント名が入ります。

認証画面に応答しましょう。
ユーザーは全体管理者です。

パスワードを入力。二段階認証を設定している方はそれにも応答しましょう。

接続に成功しました。

操作が終わりましたら明示的な切断を行っておきましょう。

Disconnect-AzureAD

あわせて導入したいPowerShellモジュール

AzureADだけでなく、ExchangeやSharePointもPowerShellモジュールを使うことで効率化が図れます。同様の手順でインストールを行うことができますので、この機会に必要なモジュールを使える状態にしておきましょう。

なお、AzureAD モジュールは今後廃止の計画があり、Microsoft Graph PowerShell SDKに統合される予定です。
まだまだGraphのコマンドレットの充実が図れておらず一本化は難しい状況ですが、迫りくる従来のコマンドレットの廃止に対し準備しておく必要がありそうです。

Exchange関連コマンドレットの使用には「EXOモジュール」が必要です。

SharePoint関連コマンドレットの使用には「SPO 管理シェル」が必要です。

ライセンス管理他、AAD モジュールの代替となるGraphのコマンドレットを使うには「Graph SDK」が必要です。

まとめ

いかがでしたでしょうか。

セキュアな構成にすればするほど制限がかかり、エラーの原因が掴みづらいもの。
今回は最終手段となる手動インストールを中心にご紹介しました。

コメント

タイトルとURLをコピーしました