Azure AD テナントを削除する際にエンタープライズ アプリケーションが残って削除できない時の対策

検証で使って不要になったAzure AD テナントを削除する時にはまったので備忘録的に。

全体的にはAzure AD テナントから削除に進むとチェックが走り、必要な操作に沿って対応していくと状態が全てグリーンになります。
が、色々外部連携やAzure DevOps等を利用していくと削除のできないものが出てきます。
削除時に出るエラーは以下のような状態ですね。

f:id:tsukatoh:20200709014953p:plain

一旦以下の手順で削除していき、これで解決できるならOKです。

docs.microsoft.com

しかしながら、Azure DevOps等はこの手順では消えてくれませんでした。
他システムや他テナントと連携するようなアプリケーションは削除ロックがかかるようで、普通には消えません。
残っている状態が以下のような状態ですね。

f:id:tsukatoh:20200709014922p:plain

そのような場合は以下の手順にて削除します。
事前に用意するものはWindows PowerShellへ以下モジュールのインストールをします。

事前準備

管理者権限でWindows PowerShellプロンプトを起動します。
以下コマンドでモジュールのインストールを行います。

Install-Module MSOnline

作業対象ディレクトリ確認

以下コマンドで対象のディレクトリか確認します。
間違ったテナントで作業すると大変なことになるので確認しましょう。

Get-MsolDomain

対象アプリケーションの無効化及び削除

以下コマンドで対象のアプリケーションを無効化します。
ObjectIdはAzure PortalのAzure AD → エンタープライズアプリケーション などから取得します。

Get-MsolServicePrincipal -ObjectId <ObjectId> | Set-MsolServicePrincipal -AccountEnabled $false

無効化されたら削除します。

Get-MsolServicePrincipal -ObjectId <ObjectId> | Remove-MsolServicePrincipal

ポータルのエンタープライズアプリケーションから表示されなくなっていれば成功です。