Microsoft 365の管理作業を効率化するためにPowerShellを使いたいが、MFA(多要素認証)でつまずくことはよくあります。「認証画面が表示されない」「サインイン後にエラーになる」「モジュールが見つからない」といった症状は、原因がモジュールのバージョン、アカウントの権限、またはテナントの設定にある場合がほとんどです。この記事では、PowerShell接続でMFAが通らないときに確認すべきモジュールと権限の調べ方を、具体的な手順とともに解説します。自分で原因を切り分け、次の行動を決められるようにするのが目的です。
【要点】この記事で確認すること
- 最初に見る場所: PowerShellモジュールのバージョンとインストール状態。特にExchange Online ManagementとMicrosoft Graph PowerShell。
- 切り分けの軸: 端末側(モジュール、PowerShellバージョン、プロキシ設定)とアカウント側(ライセンス、管理者ロール、条件付きアクセス)、さらにテナント側(認証ポリシー、レガシー認証のブロック)の3つ。
- 注意点: 会社PCではPowerShellの実行ポリシーやプロキシ設定を変更する際、管理者の許可が必要な場合があります。モジュールのインストールにも管理者権限が要求されることがあるため、自分の環境に合わせて判断してください。
ADVERTISEMENT
目次
1. PowerShellモジュールのバージョンと認証方式の関係
Exchange Online Managementモジュール
Exchange Onlineに接続するためのモジュールは、バージョンによって認証方式が異なります。バージョン2.0.5以降では最新の認証ライブラリ(MSAL)が使われ、MFAがスムーズに通るようになりました。古いバージョン(1.x系)では基本認証しかサポートしていないため、MFAが有効なアカウントでは接続できません。現在サポートされているのは2.0.3以上ですが、最新版(2025年時点で3.x)を使うことを推奨します。
Microsoft Graph PowerShellモジュール
Microsoft Graph PowerShellは、Exchange Online、Teams、SharePointなど複数のワークロードを統合できるモジュールです。こちらもバージョン1.0以降はMSALベースで、MFAを正しく処理します。ただし、モジュールの初期化やスコープ設定に問題があると、認証ダイアログが表示されないことがあります。
2. モジュールのインストール状況と更新確認手順
まずは自分の環境に必要なモジュールがインストールされているか、バージョンは適切かを確認します。以下の手順で進めてください。
- PowerShell(Windows PowerShell 5.1 または PowerShell 7)を管理者として起動します。
Get-Module -ListAvailable -Name ExchangeOnlineManagementを実行し、Exchange Online Managementモジュールが表示されるか確認します。何も表示されなければインストールされていません。Get-Module -ListAvailable -Name Microsoft.Graphを実行し、Microsoft Graphモジュールの一覧を確認します。複数バージョンが混在している場合は、最新版以外を削除することを検討します。- バージョンが古い場合、
Update-Module -Name ExchangeOnlineManagementまたはUpdate-Module -Name Microsoft.Graphで最新版に更新します。PowerShell Galleryから直接インストールする場合はInstall-Module -Name ExchangeOnlineManagement -Force -AllowClobberとします。 - インストール後、
Import-Module ExchangeOnlineManagementまたはImport-Module Microsoft.Graphでモジュールを読み込み、エラーが出ないことを確認します。 - 最後に
Connect-ExchangeOnlineまたはConnect-MgGraph -Scopes "User.Read.All"などでテスト接続を行います。このとき、ポップアップ認証ウィンドウが表示されるか、ブラウザベースの認証が求められるかが重要な判断ポイントです。
3. 接続スクリプトとMFAの有効化設定
Connect-ExchangeOnline vs New-ExoPSSession
Exchange Online Managementモジュールでは、Connect-ExchangeOnline コマンドレットが推奨されます。このコマンドは自動的にMFAをサポートします。一方、古い New-ExoPSSession を使った接続方法は基本認証を前提としており、MFAが有効な環境では失敗します。もし組織のスクリプトで New-ExoPSSession を使っている場合は、Connect-ExchangeOnline に置き換えてもらいましょう。
認証スコープとブラウザ認証の設定
Microsoft Graph PowerShellの場合、Connect-MgGraph に指定するスコープ(権限範囲)が不足していると、認証画面が表示されないことがあります。最低限 User.Read を含めておかないと、サインイン自体が始まらない場合があります。また、ブラウザ認証が既定ですが、PowerShell ISEなどの環境ではポップアップブロックが原因で認証が完了しないこともあります。その場合は Connect-MgGraph -UseDeviceCode でデバイスコード認証を試すと解決できます。
4. アカウントの権限と管理設定の確認
必要な管理者ロール
PowerShellからの操作には、適切な管理者ロールが割り当てられている必要があります。Exchange Onlineへの接続には「Exchange管理者」権限が最低限必要です。グローバル管理者であればすべての操作が可能ですが、権限が弱すぎると「アクセスが拒否されました」というエラーがMFA通過後に発生します。Microsoft Entra管理センターで自分のロールを確認しましょう。
条件付きアクセスポリシーの影響
組織で条件付きアクセスポリシーが適用されている場合、PowerShellからの接続が制限されることがあります。特に「すべてのクラウドアプリ」にデバイス準拠を要求するポリシーがあると、ブラウザ認証は通ってもアプリ(PowerShell)からの認証がブロックされる場合があります。管理者に「PowerShellクライアントアプリ」を許可するポリシーが存在するか確認してください。
5. よくある失敗パターンとその対処
| 症状 | 原因 | 解決策 |
|---|---|---|
| 認証ダイアログが表示されない | モジュールが古い、またはPowerShellの実行ポリシーが制限されている | モジュールの更新、Set-ExecutionPolicy RemoteSigned(管理者に相談) |
| サインイン後に「Access Denied」 | アカウントに適切な管理者ロールがない | Exchange管理者またはグローバル管理者ロールを割り当てる |
| デバイスコード認証でタイムアウト | プロキシ環境でコード入力ページにアクセスできない | プロキシのバイパス設定か、IT部門にプロキシ例外を依頼 |
| モジュールのインポートエラー | 依存モジュールがないか、バージョン競合 | Uninstall-Moduleで旧バージョンを削除後、再インストール |
6. 管理者に確認すべき情報と質問リスト
自分で原因を特定できない場合、管理者に次の情報を伝えるとスムーズです。
- 使用しているPowerShellのバージョン(
$PSVersionTable.PSVersionで確認) - 対象のモジュール名とバージョン(
Get-Module -ListAvailable -Name ExchangeOnlineManagement | Select-Object Version) - 発生したエラーメッセージの全文(スクリーンショット推奨)
- 自分に割り当てられている管理者ロール(Microsoft Entra管理センターで確認)
- 組織でレガシー認証がブロックされているかどうか
- 条件付きアクセスポリシーでPowerShellクライアントがブロックされていないか
管理者に質問するときは、「PowerShellでExchange Onlineに接続しようとしていますが、MFA認証画面が表示されません。モジュールは最新ですが、もしかすると条件付きアクセスでブロックされている可能性はありますか?」のように具体的に伝えると、回答を得やすくなります。
7. まとめ
PowerShell接続でMFAが通らない原因の多くは、モジュールのバージョンが古いか、アカウントに適切な権限がないかのいずれかです。まずはモジュールを最新版に更新し、Connect-ExchangeOnlineまたはConnect-MgGraphの正しい使い方を確認してください。それでも解決しない場合は、テナント側の認証ポリシーや条件付きアクセスが原因の可能性が高いため、管理者に状況を伝えて対応を依頼しましょう。本記事の手順を参考に、一つひとつ確認していけば、問題を切り分けて解決に近づくことができます。
ADVERTISEMENT
超解決 リモートワーク研究班
Microsoft 365の導入・保守を専門とするエンジニアグループ。通信障害やサインイン不具合など、ビジネスインフラのトラブル対応に精通しています。
Office・仕事術の人気記事ランキング
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【PDF】PDFのサムネイルプレビューが表示されない!エクスプローラーの設定とAcrobat環境設定
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【Excel】文字がセルの枠からはみ出す・隠れる!「折り返して表示」と「縮小して全体を表示」の使い分け
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Teams】会議の「参加者リスト」を出席後にダウンロードする!誰が参加したか確認する手順
