Exchange Online PowerShell モジュールをインストールする(手順解説)
By Mirko Peters ·
Install-Module ExchangeOnlineManagement を使って Exchange Online PowerShell モジュールをインストールします。要件、スコープ、バージョンの確認、更新、エラーの対処法を解説します。
Automatically translated with AI from the original post. Read the English original
Exchange Online PowerShell モジュールをインストールするには、管理者として PowerShell を開き、Install-Module -Name ExchangeOnlineManagement を実行します。これにより、コンピューター上の全ユーザー向けにモジュールがインストールされます。管理者として実行できない場合は、-Scope CurrentUser を追加してください。その場合は、自分のアカウントだけにインストールされます。この記事は、新しい管理用 PC、ジャンプサーバー、ビルドエージェントをセットアップする Exchange および Microsoft 365 管理者を対象としています。要件、インストールと確認の手順、モジュールの更新と削除、そして最もよく発生するエラーについて説明します。
重要なポイント
- 管理者として実行した PowerShell ウィンドウで、全ユーザー向けに Install-Module -Name ExchangeOnlineManagement を実行してインストールします。
- 管理者権限を使えない場合は -Scope CurrentUser を使用してください。後でモジュールを更新するときは、インストール時と同じスコープを指定してください。
- Windows PowerShell 5.1 には .NET Framework 4.7.2 が必要です。PowerShell 7 への対応はモジュールのバージョンによって異なり、3.10.0 以降では PowerShell 7.6.0 が必要です。
- Get-InstalledModule で結果を確認してください。バージョンと、モジュールが全ユーザー用と現在のユーザー用のどちらの場所にあるかが表示されます。
- このモジュールの接続は REST を使用するため、WinRM での Basic 認証は不要になりました。
モジュールの概要と事前準備
このモジュールの名前は ExchangeOnlineManagement です。Microsoft のドキュメントでは Exchange Online PowerShell V3 モジュールと呼ばれています。このモジュールを使うと、Exchange Online PowerShell、Security & Compliance PowerShell、およびオンプレミスのメールボックス向けの組み込みセキュリティアドオン用 PowerShell に接続できます。最新の認証方式を使用するため、多要素認証の有無にかかわらず利用できます。
古いスクリプトに影響する変更が1つあります。Microsoft によると、2023 年 10 月以降、REST API 接続が Basic 認証を使う従来のリモート PowerShell 接続に代わっています。このモジュールの接続では WinRM での Basic 認証は不要なので、そこで有効にする設定はありません。
インストールする前に、次の前提条件を確認してください。
- PowerShell のバージョンと .NET。 Windows PowerShell 5.1 には .NET Framework 4.7.2 が必要です。Windows 11、Windows Server 2022、Windows Server 2025 には 4.8.x が含まれているため、問題ありません。PowerShell 7 も利用できます。最小バージョンはモジュールのバージョンによって異なります。詳しくは次のセクションで説明します。
- 実行ポリシー。 Microsoft のページによると、適切な実行ポリシーが設定されていない場合、"Files cannot be loaded because running scripts is disabled on this system" というエラーが表示されます。Microsoft が案内している対処法は、管理者として
Set-ExecutionPolicy RemoteSignedを実行することです。変更する前に、実行ポリシーに関する Microsoft のページを確認してください。管理対象のコンピューターの場合は、事前にセキュリティチームに確認してください。 - PowerShellGet と PackageManagement。 Windows での REST 接続には PowerShellGet が必要で、PowerShellGet は PackageManagement に依存しています。これらがないと、
Update-ModuleManifestコマンドレットが見つからないというエラーが表示されることがあります。Microsoft は、これら 2 つのモジュールのプレビュー版が接続の問題を引き起こす可能性があるとも述べており、インストール済みのバージョンを一覧表示するコマンドも示しています:Get-InstalledModule PackageManagement -AllVersions; Get-InstalledModule PowerShellGet -AllVersions。 - TLS 1.2。 古い Windows 上の Windows PowerShell 5.1 では、PowerShell ギャラリーに TLS 1.2 以降が必要です。古いサーバーでダウンロードが接続エラーで失敗する場合、最初に確認すべき点はこれです。
非常に古いシステムは行き止まりです。Windows 7 SP1 と Windows Server 2008 R2 SP1 で利用できるのはモジュール バージョン 2.0.3 のみで、Microsoft によると、このバージョンは REST のサポートがないため接続できません。
PowerShell のバージョンとモジュールのバージョンの対応関係
Windows PowerShell 5.1 はすべてのモジュール バージョンに対応しています(前述の .NET の要件を満たす場合)。PowerShell 7 については、Microsoft は次の対応表を示しています。
- モジュール 3.10.0 以降には PowerShell 7.6.0 以降が必要で、これは .NET 10 を使用します。
- モジュール 3.5.0 から 3.9.2 には PowerShell 7.4.0 以降が必要で、これは .NET 8 を使用します。
- モジュール 3.0.0 から 3.4.0 には PowerShell 7.2.0 以降が必要で、これは .NET 6 を使用します。
- モジュール 2.0.4 以降の 2.x 系には PowerShell 7.0.3 が必要です。
したがって、PowerShell 7.4 を搭載したマシンに最新のモジュールをインストールすると、問題が発生する可能性があります。PowerShell を更新するか、-RequiredVersion を使用して古いモジュール バージョンをインストールしてください。執筆時点で、Microsoft は現在のバージョンとして 3.10.1 を挙げています。この記事を読む時点で該当するバージョン番号は、モジュールのページで確認してください。
Microsoft は Linux と macOS でもこのモジュールをサポートしています。Linux では、プロキシ経由で接続するにはモジュール バージョン 3.0.0 以降が必要です。両方のシステムでは、Connect-IPPSSession および、それを使用する Security & Compliance PowerShell は PowerShell 7 で利用できません。Mac から Exchange Online を管理する場合、ツールを計画する前に知っておくべき唯一の制限です。
Windows 10 については簡単に触れておきます。一般向けエディションのサポートは 2025 年 10 月に終了しており、Microsoft はこれらが .NET 8.0 および .NET 10.0 をサポートしていないと述べています。PowerShell 7.4 以降でモジュール 3.5.0 以降を使用する場合、サポートが継続している Enterprise エディションと IoT LTSC エディションのみが動作します。
インストール前に PowerShell のバージョンを確認する
2 分の確認で、後の推測作業を大幅に減らせます。作業を行うウィンドウで $PSVersionTable.PSVersion を実行し、使用している PowerShell のバージョンを確認してください。結果を上記の対応表と比較します。Windows PowerShell 5.1 の場合は PowerShellGet のバージョンも確認する必要があるため、Get-InstalledModule PowerShellGet -AllVersions を実行します。このコマンドの結果にプレビュー版が含まれている場合は、削除するか、安定版に更新してから次に進んでください。Microsoft のモジュールのページは、PowerShellGet および PackageManagement のプレビュー版を接続の問題の原因として挙げています。
管理するサーバーが数台を超える場合は、マシン名の横に結果を書き留めておいてください。3 か月後に同僚から接続失敗の報告があったとき、数秒でバージョンを比較できます。
Exchange Online PowerShell モジュールのインストール手順
次の手順は、Windows PowerShell 5.1 と PowerShell 7 のどちらでも有効です。
- PowerShell を開きます。すべてのユーザー向けにインストールする場合は、管理者として実行を選択します。現在のユーザーのみにインストールする場合は、この操作を省略してください。
- マシンに初めてインストールするモジュールである場合は、まず PowerShellGet を更新してから、PowerShell を閉じて開き直してください。Microsoft は、初回インストール前にこの順序を推奨しています。
- すべてのユーザー向けには
Install-Module -Name ExchangeOnlineManagementを実行します。自分のアカウントのみに対して実行する場合は、Install-Module -Name ExchangeOnlineManagement -Scope CurrentUserを実行します。 - インストール中に PowerShell が表示するプロンプトには応答してください。ダウンロードを成功させるには、組織で PowerShell ギャラリーへのアクセスを許可しておく必要があります。
Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocationを実行して、インストールを確認します。InstalledLocationの行を確認してください。%ProgramFiles%\WindowsPowerShell\Modules\配下のパスは、すべてのユーザー向けにインストールされていることを意味します。ドキュメント フォルダー内のパスは、現在のユーザーのみにインストールされていることを意味します。- 新しいウィンドウで
Connect-ExchangeOnline -UserPrincipalName admin@contoso.comを実行して、動作を確認します。接続の詳細については、Connect to Exchange Online PowerShell の記事を参照してください。
プレビュー版を使いたい場合は、-AllowPrerelease を追加します。特定のプレビュー版を指定するには、-RequiredVersion と組み合わせます。Find-Module ExchangeOnlineManagement -AllVersions -AllowPrerelease を実行すると、利用可能なバージョンが一覧表示されます。-AllowPrerelease を省略すると、一般公開版のみが表示されます。特别な理由がない限り、本番環境の管理サーバーにプレビュー版を導入しないでください。まず予備のマシンでテストしてください。
モジュールの更新とアンインストール
Microsoft は新しいモジュールのバージョンを定期的に公開しており、モジュールのページにあるリリースノートで変更内容を確認できます。たとえばバージョン 3.7.0 では、既定でコマンドラインヘルプが読み込まれなくなりました。バージョン 3.9.2 では UseRpsSession パラメーターが非推奨になりました。更新は 1 行のコマンドで実行できます。Update-Module -Name ExchangeOnlineManagement です。現在のユーザー向けにインストールしている場合は、-Scope CurrentUser を追加します。Microsoft は、インストール時と同じスコープを使用するよう案内しています。スコープが一致しないと、両方の場所にインストールされた状態になり、PowerShell がどちらを使用するのか分からなくなる場合があります。
そのため、更新の前後に手順 5 の Get-InstalledModule で確認することをお勧めします。2 つのバージョンが表示された場合は、それぞれがどのスコープに属しているかを確認してください。
モジュールを削除するには、Uninstall-Module -Name ExchangeOnlineManagement を実行します。すべてのユーザー向けにインストールされている場合は、管理者として実行してください。その後、開いている PowerShell のウィンドウを閉じてください。読み込み済みのモジュールは、セッションが終了するまでメモリに残るためです。
よくあるインストールエラーの対処法
Microsoft のモジュールページには、いくつかの特定のエラーと対処法が記載されています。
- 「指定された検索条件およびモジュール名 'ExchangeOnlineManagement' に一致するものが見つかりませんでした」。
Register-PSRepository -Defaultを実行して、PowerShell ギャラリーをリポジトリとして再登録します。その後、インストールを再度試してください。 - PowerShellGetFormatVersion に関するエラー、またはプロバイダーをダウンロードできないというエラー。 PowerShellGet を更新し、PowerShell を再起動してください。
- 古い Windows PowerShell 5.1 のマシンでダウンロードが失敗する。 PowerShell ギャラリーは TLS 1.2 以降を必要とします。詳細については、Microsoft がリンクしているギャラリーの TLS サポートに関するブログ記事を参照してください。
- 「このシステムではスクリプトの実行が無効になっているため、ファイルを読み込めません」。 管理者として、上記の説明に従って実行ポリシーを設定してください。
- 接続時に「Update-Manifest」コマンドレットが見つからない、または
Update-ModuleManifestに関する同様のメッセージが表示される。 PowerShellGet または PackageManagement が不足しています。両方をインストールし、PowerShell を再起動してください。
インストールは成功したのに、後で接続時に不可解なアセンブリエラーが表示される場合、原因はたいてい同じセッション内の別のモジュールです。新しいウィンドウを開いて、まず接続してください。
よくある間違い
- スコープの混在。 一度すべてのユーザー向けにインストールしたあとで
-Scope CurrentUserを指定して更新すると、マシン上に 2 つのバージョンが残ります。どちらか一方のスコープを選び、それを維持してください。 - モジュールに対して PowerShell のバージョンが合っていない。 古い PowerShell 7 で最新のモジュールを使うと、接続エラーのように見える形で失敗します。上の表と照らし合わせて、お使いのバージョンを確認してください。
- 本番ホストにプレビュー版をインストールする。 プレビュー版はテスト用です。日常業務では一般公開版を使用してください。
- PowerShellGet を無視する。 PowerShellGet が存在しない場合やプレビュー版の場合、Microsoft のページに記載されているとおり、REST 接続が失敗することがあります。新規インストール後に接続できない場合は、まずこれを確認してください。
- 古いチュートリアルに従う。 WinRM で基本認証を有効にするよう指示しているガイドは、廃止されたリモート PowerShell の方式について説明しています。この設定は必要ありません。
関連トピック
- モジュールを使った接続:インストールが完了したら、次に考えるべきはサインイン方法です。MFA の有無を含め、Exchange Online PowerShell モジュールの記事とその接続に関する関連記事で解説されています。
- アプリのみの認証:スケジュール実行のスクリプトでは、入力したパスワードではなく、証明書またはマネージド ID が必要です。
- PowerShell 7でモジュールをLinuxおよびmacOSで使用する: 対応バージョンはオペレーティングシステムによって異なるため、まず互換性の一覧を確認してください。
- PowerShellを使用できるユーザーの管理: Exchange管理者は、ユーザーごとにExchange Online PowerShellへのアクセスを有効または無効にできます。
- モジュールを最新の状態に保つ: Microsoftは随時PowerShellの最小バージョンを引き上げるため、新しいモジュールのバージョンを確認する定期的なリマインダーを設定してください。
次のステップ
Exchange Online PowerShellモジュールをインストールするには、Install-Module -Name ExchangeOnlineManagementを実行し、Get-InstalledModuleで確認します。以降のすべての更新でもスコープは同じに保ってください。その後、新しいウィンドウでConnect-ExchangeOnlineを使って接続し、Get-AcceptedDomainを実行して設定が機能することを確認します。