Azure AD Connect アンインストール のハマりどころ

# はじめに
Azure AD Connect (以降、AADC) を アンインストールしようとしたところ、色々なところで ハマりました。

AADC のアンインストール には、PowerShellモジュール である、MsOnline(MsolService) が必要なのですが、これがうまく動作しませんでした。

簡単なアクションかと思いきや、色々と発想を変えて 調べて トライ＆エラー をする羽目になったので、こちらに まとめました。

# ハマりどころ
1. MsOnline(MsolService) が Azure Portal の CloudShell で機能しない
1. MsOnline(MsolService) が PowerShell v7 でも機能しない

:::note info
結論：Windows 10 マシン上の PowerShell v5.1～v6 で実行する必要があった
:::

## 1. MsOnline(MsolService) が CloudShell で機能しない
MsOnline(MsolService) のモジュールは 問題無くインストールできるのですが、"Connect-MsolService" が動作せず、以下のエラーが発生しました。

:::note alert
"`Connect-MsolService: Could not load file or assembly 'System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=*****'. The system cannot find the file specified."
:::

最終的には、以下の記事で 同じエラーが出ている人の質問に、CloudShell では動作しないので、Windows マシン上の PowerShell を使うように・・・とのコメントが付いているのを見つけたことで、解決に近づくことができました。
https://learn.microsoft.com/en-us/answers/questions/501302/need-to-set-msolcompanysettings-but-unable-to-load

## 2. MsOnline(MsolService) が PowerShell v7 でも機能しない
MsOnline(MsolService) のモジュールは 問題無くインストールできるのですが、"Connect-MsolService" が動作せず、以下のエラーが発生しました。

:::note alert
Could not load type 'System.Security.Cryptography.SHA256Cng' from assembly
:::

実は、CloudShell では 動作しないかもとは思っていて、手持ちの Windows 11 端末でも 並行して試していました。しかし、こちらでも 動作せず、完全に暗礁に乗り上げてしまいました。

この時点で MsOnline(MsolService) って 古いモジュールだから 使えなくなってしまったのではないか？ だから、ネット上の AADCアンインストール記事は古くて使えないのではないか？・・・などと 色々と無駄な推測をたててしまい、ハマりました。
手元に Windows 10 マシンが無く Windows 11 だったことも落とし穴でした。

以下の記事をみつけて、なんとか 原因に気が付くことができました。
https://answers.microsoft.com/en-us/msoffice/forum/all/o365-powershell-error-trying-to-connect-to/27d3ee2b-fc20-47c9-bbec-9b2363a9d5bc

## 結論
結論としては、なんと CloudShell、PowerShell v7 のどちらも動作要件は満たしておらず、Windows PC 上の PowerShell v5.1～v6 が必要という事でした（手順を後述します）
※Windows 11 は、初めから PowerShellが v7 なので そもそもダメですね💦

そのため、Windows 10 の VM をデプロイして そのマシン上で試すことで、ようやく目的を達成する事ができました。

私の場合は、Windows 11 を使っていたのですが、PowerShell が 元々 v7 なので 何の疑いもせずに使ってしまいましたし、"Import-Module MsOnline" のコマンドで インストールは問題なく成功するのに Connect-MsolService が動作しないという謎事象だったので、原因の絞り込みに時間が掛かってしまいました。

（公開情報：はじめに把握しておくべき情報）
https://learn.microsoft.com/ja-jp/microsoft-365/enterprise/connect-to-microsoft-365-powershell?view=o365-worldwide#what-do-you-need-to-know-before-you-begin
→　この記事をよく読むと、"Msolを含む" と書かれているので よく読むと 対応していないことが確認できます（・・・・が これ読んだだけで そんなの わかるかー！って思いました）

:::note info
Microsoft Azure Active Directory Module for Windows PowerShell (コマンドレットの名前に Msol を含む)
:::

:::note alert
Microsoft Azure Active Directory Module for Windows PowerShell モジュールの場合は、PowerShell バージョン 5.1 以降 (PowerShell バージョン 6 まで) を使用する必要があります。PowerShell バージョン 7 を使用することはできません。
:::

# AADC アンインストール手順
## アンインストール前の状態（Before）
「同期状態」が「有効」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/e4ddff48-bf5b-4042-1361-4527f69d26a7.png)

## AADCサーバー側の作業

（参考：Microsoft Entra Connect のアンインストール）
https://learn.microsoft.com/ja-jp/azure/active-directory/hybrid/connect/how-to-connect-uninstall

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/8b700ae3-6b48-4d9a-9cda-2bb8810f4ef4.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/e62adb3e-ddc9-2d87-a760-f6fabd7fc639.png)

AADCのアプリ を アンインストール したあと、Azure Portal で同期状態を確認します。
「有効」から「未インストール」に変わっていれば AADC 削除完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/60f21a15-0542-c98f-7f32-60c87327b194.png)

:::note warn
アンインストールが完了しても 同期状態が「有効」なまま になってしまう事が結構多いようです。その場合は、次章の テナント側の作業を行います。
:::

## テナント側の作業
テナントの同期状態が「有効」なままになっている場合は、本手順を実施します。

（参考：Azure Active Directory 同期ツールを使用して同期されたオブジェクトを管理または削除できません）
https://learn.microsoft.com/ja-jp/troubleshoot/azure/active-directory/cannot-manage-objects

:::note warn
この手順を行う際に 冒頭でも説明したとおり Windowsマシン上で PowerShell v5.1～v6 で実施する必要があります。v7 では動きません。
:::

1. 以下のコマンドを順に実行し MsOnline モジュールのインストールから導入確認まで実施します。
Install-Module MsOnline
Get-Module
Import-Module MsOnline
Get-Module
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/dd6b2a33-54c5-6f21-13f3-ee0ff6311674.png)
最終的に、Get-Module で、MSOnline を確認できれば OK です。

1. Connect-MsolService でクラウドに接続するコマンドを実行します。
下図の通り、認証ウィンドウが開くため、管理者アカウントでサインインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/430864f5-581e-f714-d3f7-3e331cbd44f7.png)

1. 認証が終わったら、以下の２つのコマンドを実行します。
Set-MsolDirSyncEnabled -EnableDirSync $false
(Get-MSOLCompanyInformation).DirectorySynchronizationEnabled
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/b8622251-86df-b2c3-5353-75f0be03e68a.png)
実行結果として、"false" が表示されれば OK です。
タイムラグがあるため、"false" にならない場合は、"(Get-MSOLCompanyInformation) DirectorySynchronizationEnabled" を繰り返し実行して、"false" が表示されるまで待ちます。

"false" を確認できたら、以下の Azure Portal の画面で「同期状態」の箇所が「未インストール」に変わったことも確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/60f21a15-0542-c98f-7f32-60c87327b194.png)

## 同期アカウントの削除
Azure Portal で ユーザー一覧を確認し、以下の オレンジ色枠の "On-Premises Directory Synchronization Service Account" が残っていたら、削除します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/8329f95b-1503-8d55-e5c0-f60e7eed30f3.png)

# さいごに
ネット上で検索すると、AADCのアンインストール手順は 多く見つかるのですが、簡単そうな手順であるからこそ、動かないと 何が原因なのかが良くわからなくなります。
本記事が 解決の糸口になれれば幸いです。

あと、本記事の執筆時点で Azure AD の名称が Microsoft Entra ID に変更されることが発表されています。
Azure AD Connect も、Microsoft Entra Connect に改名されます。

私が執筆している他の記事は、それに合わせて 新旧の名称を併記するなどしているのですが、現時点で AADCのアンインストール作業の際に出てくる画面には、一切 Microsoft Entra が出てこないので、判りやすさを優先して 実作業時に使われる名称で記載しました。

https://qiita.com/carol0226/items/2a767e3d9e114b66c562