Microsoft 365 Business Premium でメール暗号化(AIP/Azure RMS)を使おうとして、PowerShell の Connect-AipService がエラーになることがあります。本記事では原因の定番である「実行環境の非対応」と、確実に有効化する手順、追加の切り分けポイントをまとめます。
起きていること:Connect-AipService / Enable-AipService が失敗して AIP(暗号化)を有効化できない
Microsoft 365 Business Premium を契約している環境で、テナント側のメール暗号化(Azure Information Protection / Rights Management Service 系)を利用するために、PowerShell から次の流れを実行しようとしてつまずくケースがあります。
- Connect-AipService で AIP(Azure Information Protection)サービスに接続
- Enable-AipService で AIP(暗号化/RMS)を有効化
ところが、Connect-AipService が接続エラーで失敗し、先へ進めないことがあります。代表的なエラー例は次のとおりです。
- “The attempt to connect to the Azure Information Protection service failed …”
- “Object reference not set to an instance of an object.”(いわゆる NullReference 例外)
- モジュールを再インストールしても改善しない(エラー内に Correlation ID/相関 ID が表示される)
この状態だと、テナントの暗号化機能を使うための前提設定が完了せず、感度ラベルの暗号化や Office 365 Message Encryption(OME)連携などの運用に進めません。まずは「なぜ Connect-AipService が落ちるのか」を最短で切り分けましょう。
結論:原因の多くは「AipService(Azure Information Protection)PowerShell モジュールの実行環境が非対応」
Connect-AipService / Enable-AipService は、一般的に AipService(Azure Information Protection)PowerShell モジュールのコマンドレットです。このモジュールは、作りとして Windows 上の Windows PowerShell(従来の PowerShell)を前提にしているため、実行環境がズレると接続処理が失敗しやすくなります。
特にハマりやすいのが次のパターンです。
- PowerShell 7(PowerShell Core)で実行している(Windows Terminal の既定プロファイルが PowerShell 7 のことが多い)
- Mac / Linux 版 PowerShellで実行している
- Windows でも「PowerShell(7)」と「Windows PowerShell(5.1)」を混同している
| 実行環境 | Connect-AipService の相性 | 補足 |
|---|---|---|
| Windows PowerShell 5.1(Windows) | ◎(推奨) | 従来の Windows PowerShell。AipService の想定実行環境。 |
| PowerShell 7.x(Windows) | △(失敗しやすい) | モジュール自体が Windows PowerShell 前提のため、接続処理で例外が出ることがある。 |
| PowerShell 7.x(Mac / Linux) | ×(非対応) | AipService が Windows 依存のため、基本的に動作対象外。 |
つまり、エラーの見た目が「資格情報」「ネットワーク」「サービス障害」に見えても、実務では まず PowerShell の種類を正すだけで解決することが少なくありません。
まず確認するポイント(最短で原因を潰すチェックリスト)
以下を上から順に確認すると、原因の切り分けが早くなります。
| 確認項目 | 見る場所 / コマンド | OK の目安 |
|---|---|---|
| PowerShell が「Windows PowerShell」か | $PSVersionTable | PSEdition が Desktop、PSVersion が 5.1 付近 |
| 管理者として起動しているか | 起動方法(右クリック→管理者として実行) | モジュール導入・依存関係で詰まりにくい |
| 同じユーザーで Azure ポータルにログインできるか | ブラウザで Microsoft Entra 管理センター / Azure ポータル | サインインブロックや MFA 要因を排除できる |
| ネットワーク(プロキシ/SSL インスペクション) | 社内ネットワーク / セキュリティ製品 | 認証・トークン取得が遮断されない |
PowerShell の種類が曖昧な場合は、まず次のコマンドで「今どの PowerShell を開いているか」を客観的に把握します。
$PSVersionTable
目安として、Windows PowerShell 5.1 であれば PSEdition: Desktop の表示になります(PowerShell 7 は通常 PSEdition: Core)。まずここが一致しているかが最重要です。
解決手順:Windows PowerShell(5.1)で Connect-AipService → Enable-AipService を実行する
ここからは「確実に通す」ための実行手順です。ポイントは Windows PowerShell(5.1)を、管理者として起動して実行することです。
Windows PowerShell を間違えずに起動する
- スタートメニューで 「Windows PowerShell」 を検索して起動する(「PowerShell」ではなく「Windows PowerShell」)
- 可能なら 右クリック→管理者として実行
- Windows Terminal を使っている場合は、プロファイルに「Windows PowerShell」を追加して、そこから起動する
AipService モジュールのインストール/更新(再インストールを正しく行う)
すでにインストール済みでも、複数バージョンが混在しているとトラブルの温床になります。Windows PowerShell で、まず現状を確認します。
Get-Module -ListAvailable AipService | Select-Object Name, Version, Path
不要なバージョンが残っている場合は整理し、最新の状態に寄せます。環境によっては管理者権限が必要です。
# 可能なら全バージョンをアンインストールしてクリーンにする
Uninstall-Module AipService -AllVersions -Force
# 必要に応じて NuGet プロバイダーを導入
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
# PSGallery からインストール
Install-Module AipService -Force
社内ネットワークや古い既定設定の影響で TLS が原因になることもあるため、インストールや接続で詰まる場合は、次の TLS 設定も併せて試すと切り分けが進みます。
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
接続:Connect-AipService
モジュールが読み込めたら、AIP サービスへ接続します。
Connect-AipService
ここでサインイン画面が出ない、またはエラーになる場合は、次の章の「追加トラブルシューティング」を確認してください。
有効化:Enable-AipService
接続が成功したら、有効化コマンドを実行します。
Enable-AipService
実行後は状態確認も行い、「有効化できたか」をログとして残しておくと運用が安全です。
Get-AipService
テナント設定によっては、すでに有効化済みで「すでに有効」といった結果になる場合もあります。その場合は、Connect-AipService が通った時点で、今回の目的(有効化)は達成している可能性が高いです。
PowerShell 7(Windows Terminal)で実行したい場合の現実的な選択肢
運用上 PowerShell 7 を標準にしている現場も多いですが、Connect-AipService で詰まる場合は 無理に PowerShell 7 で完結させないのが近道です。よく使われる回避策は次の 2 つです。
- Windows Terminal から「Windows PowerShell」プロファイルを開いて実行(最も確実)
- PowerShell 7 の互換機能で Windows PowerShell モジュールとして読み込む(環境依存のため動かない場合もある)
互換機能を試す場合の例です(動作するかは環境に依存します)。
# PowerShell 7 で Windows PowerShell 互換モードを利用する例
Import-Module AipService -UseWindowsPowerShell
Connect-AipService
ただし、業務で確実性を求めるなら、最初から Windows PowerShell 5.1 で実行して「接続と有効化だけ」完了させるのが結果的に早いことが多いです。
それでも Connect-AipService が失敗するときの追加トラブルシューティング
Windows PowerShell 5.1 で実行しても失敗する場合は、「実行環境以外の要因」に切り分けを進めます。よくある原因と対処を、現場で使いやすい形でまとめます。
| 症状 | よくある原因 | 対処の方向性 |
|---|---|---|
| “The attempt to connect … failed” が出る | 認証がブロック、プロキシ/SSL インスペクション、TLS | 同一アカウントでポータルログイン確認、TLS 1.2、ネットワーク経路確認 |
| “Object reference not set …” が出る | モジュールの依存関係/読み込み失敗、混在インストール | Windows PowerShell で実行、モジュールを全削除→再インストール、PowerShell を新規起動して再試行 |
| 資格情報を入れても何度もプロンプトが出る | MFA/条件付きアクセス、端末コンプライアンス要求 | サインインログでブロック理由確認、別の管理者アカウントで切り分け |
| 社外ネットワークでは通るが社内では通らない | 社内プロキシ、URL フィルタ、TLS 中間者 | プロキシ例外、SSL 検査除外、セキュリティ製品のログ確認 |
TLS 1.2 を強制してから接続を再試行する
古い Windows の既定設定や、セキュリティ設定の影響で TLS が原因になることがあります。接続前に次を実行してから、Connect-AipService を再試行します。
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Connect-AipService
この設定はプロセス内の挙動に影響するため、恒久対策としては OS の更新やポリシーの整備も検討してください。
プロキシ環境の確認(WinHTTP とブラウザの差に注意)
ブラウザで Azure ポータルにログインできても、PowerShell の通信経路が別で、プロキシ設定の差で失敗することがあります。社内プロキシ環境では、次の観点で確認すると切り分けが進みます。
- ブラウザ(WinINET)と PowerShell(WinHTTP)のプロキシが一致しているか
- SSL インスペクションで認証/トークン取得が阻害されていないか
- セキュリティ製品が MS の認証先を遮断していないか
WinHTTP のプロキシは次のコマンドで確認できます(変更は慎重に行ってください)。
netsh winhttp show proxy
アカウント(権限・サインイン状態)の切り分け
Enable-AipService はテナント全体に影響する操作です。操作ユーザーが適切な管理者権限を持っているか、また条件付きアクセスなどで「PowerShell のサインイン」がブロックされていないかを確認します。
- 管理者権限(例:グローバル管理者など)が付与されているか
- 条件付きアクセスで、端末準拠や特定ネットワーク以外のアクセスが拒否されていないか
- 同一アカウントでブラウザのポータルに問題なくサインインできるか
特に「ブラウザでは入れるが、PowerShell だけ失敗する」場合、条件付きアクセスの設計(許可するクライアントアプリや認証要件)が関係していることが多いです。可能なら、サインインログ(Microsoft Entra のサインインログ)でブロック理由を確認し、どの条件に引っかかっているかを特定します。
モジュール混在を避ける(複数バージョン・複数パスの罠)
「再インストールしても直らない」原因として、AipService が複数のパスに存在し、意図しない古いバージョンが読み込まれているケースがあります。次のコマンドで、どのパスに何があるかを確認し、不要なものを整理してください。
Get-Module -ListAvailable AipService | Select-Object Name, Version, Path
確認のコツは、期待していない場所(ユーザープロファイル配下、旧 PSModulePath、社内配布のモジュール格納場所)が混ざっていないかを見ることです。
Correlation ID(相関 ID)を「捨てない」
エラー文に Correlation ID が表示されたら、これは調査を加速する重要情報です。たとえ自力で解決する場合でも、次の情報を 1 セットとして控えておくと、後から同様の事故が起きたときに役立ちます。
- 表示された Correlation ID
- エラーが出た日時(可能ならタイムゾーンも)
- 実行したコマンド(Connect-AipService か Enable-AipService か)
- 実行環境(Windows のバージョン、Windows PowerShell のバージョン、AipService のバージョン)
- 実行ユーザー(どの管理者アカウントで実行したか)
Microsoft サポートに問い合わせる際、Correlation ID と上記情報があるだけで、サインインやバックエンドのログ追跡がしやすくなります。
Enable-AipService 後の確認(「有効化できた」状態を客観的に残す)
Enable-AipService の実行後は、できれば「成功した証跡」をコマンド出力として残しておくのがおすすめです。監査や引き継ぎの場面で効いてきます。
| 確認したいこと | コマンド例 | 見どころ |
|---|---|---|
| サービスに接続できるか | Connect-AipService | エラーなく認証が通るか |
| AIP サービス状態 | Get-AipService | 有効化済みの状態になっているか |
| 設定値の参照(必要に応じて) | Get-AipServiceConfiguration | 組織の設定確認やトラブル時の比較に使える |
ここまで通れば、少なくとも「AIP(RMS)を有効化するための PowerShell 操作」が原因で止まる状態は脱却できています。
メール暗号化(AIP/OME)に進むための次の作業
AIP(RMS)を有効化しただけでは、ユーザーが自然に暗号化メールを送れる状態にはなりません。一般的には次のような流れで「運用できる暗号化」に仕上げます。
- Microsoft Purview で、暗号化を伴う感度ラベル(機密、社外秘など)を設計する
- ラベルを発行(公開)して、対象ユーザー/グループへ配布する
- Outlook からラベル適用(または暗号化オプション)で送信テストを行う
- 社外宛の受信者が閲覧できるか(ブラウザ閲覧、ワンタイム パスコードなど)を検証する
- DLP や自動ラベル付与など、誤送信対策の仕組みに接続する
「Enable-AipService までは通るが、暗号化が使えない」という場合は、上記のどこで止まっているかを整理すると原因が見えやすくなります。特に、ラベルの発行範囲(誰に見えるか)と、Outlook 側の利用条件(更新状況、アカウント構成)を確認すると前進しやすいです。
Microsoft サポートに問い合わせるときのテンプレ(伝える情報を揃える)
どうしても解決しない場合は、表示された Correlation ID を添えて Microsoft サポートにエスカレーションするのが現実的です。問い合わせ時に、次の項目を最初から揃えておくと往復が減ります。
| 項目 | 例 | なぜ必要か |
|---|---|---|
| Correlation ID | エラー表示の文字列 | バックエンドログの追跡に直結する |
| 発生日時 | YYYY/MM/DD HH:MM(タイムゾーン) | ログ検索範囲を絞れる |
| 実行コマンド | Connect-AipService / Enable-AipService | どの処理で落ちたか明確になる |
| 実行環境 | Windows バージョン、PowerShell 5.1、AipService バージョン | 既知の不具合・非対応を切り分けられる |
| ネットワーク条件 | 社内/社外、プロキシ有無 | 経路依存の問題か判断できる |
「単にエラーが出ます」だけだと調査が進みにくいため、上記を埋めて渡すのがコツです。
まとめ:Connect-AipService エラーは「Windows PowerShell 5.1 で実行」が最短ルート
Connect-AipService / Enable-AipService が失敗する問題は、見た目が派手でも、原因の多くは AipService モジュールの実行環境が非対応というシンプルな落とし穴です。まずは Windows PowerShell(5.1)で、管理者として起動し、Connect-AipService → Enable-AipService を実行するところからやり直してください。
それでも失敗する場合は、TLS、プロキシ、条件付きアクセス、モジュール混在などを順に潰し、最後は Correlation ID を添えてサポートへ。ここまでの手順を踏めば、AIP(暗号化)を有効化できない状態から抜け出し、メール暗号化の運用へ進めるはずです。

コメント