どーも、shozinです。
Microsoft Entra Connect を構成した際に、同期されるスキーマ(属性)が足りていないことに気づいたので解決してみました。
スキーマ拡張をすると動的グループの条件にできるので、Microsoft Entra ID 管理の幅が広がります。
それでは行ってみましょう!
検証環境
- Microsoft Entra ID
- オンプレAD
Azure VM - Windows Server 2019 (KB4487044 適用済み)
Exchange Server未導入 - Microsoft Entra Connect構成済み(非推奨ですがオンプレADに同居させています。)
状態確認(飛ばしてOK)
まずはオンプレADの状態を確認していきます。
PowerShellで[systeminfo.exe]を起動し、OS情報を表示します。(任意)
フォレストの機能レベルを確認。
Get-ADForest | fl Name,ForestMode
ユーザー属性を表示して、Exchange Serverのスキーマが拡張されていないことを確認します。
(Get-ADUser -Filter * -Properties *)[0]
ユーザーの属性からも確認できます。
代表的な属性として[extensionAttribute1]~[extensionAttribute15]が存在していないことが確認できます。
Microsoft Entra Connect 同期: Microsoft Entra ID に同期される属性
スキーマ拡張
以下の文書を参考にしました。
Exchange Server の Active Directory とドメインを準備する
Exchange Server 2016 の累積的な更新プログラムをダウンロード
以下サイトを辿って、Microsoft Exchange Server 2016 の累積的な更新プログラムをダウンロードします。(最新版でOK)
Exchange Server のビルド番号とリリース日 | Microsoft Docs
ちなみに私はcurlでダウンロードをしました。(Windows Server上でダウンロードを行う際、信頼済みサイトに追加するのが嫌なため)
curl -o .\desktop\ExchangeServer2016-x64-CU22.ISO https://download.microsoft.com/download/f/0/e/f0e65686-3761-4c9d-b8b2-9fb71a207b8d/ExchangeServer2016-x64-CU22.ISO
ダウンロードされました。
isoファイルを 右クリックし、[マウント]をします。
スキーマ拡張を実行
スキーマ拡張を実行します。
※後戻りできません。スキーマ拡張前に戻すことができなくなります。と言っても困ることは滅多に無いと思います。
心配な場合は、他にスキーマ拡張されていないか等、不都合がないかを確実に調べた上で実施しましょう。
G:
.\setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF
エラー解消
エラーが出ることが多いと思います。
一つ一つ根気よく解消しましょう。
Microsoft Exchange Server 2016 累積的な更新プログラム 22 無人セットアップ
ファイルをコピーしています...
ファイルのコピーが完了しました。セットアップを行うと、インストールに必要な追加情報が収集されます。
Microsoft Exchange Server の前提条件を確認しています
前提条件の分析 失敗
前のインストールからの再起動が保留になっています。システムを再起動して、セットアップを再実行してください。
詳細については、次の Web サイトにアクセスしてください: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.RebootPending.aspx
このコンピューターには .NET Framework 4.8 (https://support.microsoft.com/kb/4503548) が必要です。
詳細については、次の Web サイトにアクセスしてください: https://docs.microsoft.com/Exchange/plan-and-deploy/system-requirements?view=exchserver-2016
Exchange Server のセットアップは完了しませんでした。詳細については、ExchangeSetup.log を参照してください。このファイルは、<SystemDrive>:\ExchangeSetupLogs
フォルダーにあります。
どうやら、再起動と[.NET Framework4.8]が必要なようです。
.Net FrameworkをADに入れたくない気がしたので、急遽メンバーサーバーを用意し、作業を実施しました。
メンバーサーバーからスキーマ拡張(.Net FrameworkをADにインストールしたくない人)
サーバーは評価版でもWin10,Win11なんでも大丈夫だと思います。
ADに対して権限が必要だと思うので、そこは注意が必要かと思われます。
ついでにExchange2016は古いと思ったので、Exchange2019の最新版のsetup.exeで作業をしました。
Curl -o .\desktop\ExchangeServer2019-x64-CU11.ISO https://download.microsoft.com/download/5/3/e/53e75dbd-ca33-496a-bd23-1d861feaa02a/ExchangeServer2019-x64-CU11.ISO
エラーが増えました。。。「うっ」となりましたが、気を取り直してエラーを解消していきます。
日本語を入れる手間を惜しんだので、英語で表示されています。
Microsoft Exchange Server 2019 Cumulative Update 11 Unattended Setup
Copying Files...
File copy complete. Setup will now collect additional information needed for installation.
Performing Microsoft Exchange Server Prerequisite Check
Prerequisite Analysis FAILED
This computer doesn't belong to a valid Active Directory site. Check the site and subnet definitions.
For more information, visit: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.InvalidADSite.aspx
The Active Directory schema isn't up-to-date and the Active Directory management tools aren't installed on this computer. To install the tools, install the 'RSAT-ADDS' Windows feature. Alternately, you can run setup.exe /PrepareAD on a domain controller.
For more information, visit: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.W2K8R2PrepareSchemaLdifdeNotInstalled.aspx
This computer requires .NET Framework 4.8 (https://support.microsoft.com/kb/4503548).
For more information, visit: https://docs.microsoft.com/Exchange/plan-and-deploy/system-requirements?view=exchserver-2019
The Active Directory schema isn't up-to-date, and this user account isn't a member of the 'Schema Admins' and/or 'Enterprise Admins' groups.
For more information, visit: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.SchemaUpdateRequired.aspx
Setup encountered a problem while validating the state of Active Directory: Could not find information about the local site. This can be caused by incorrect configuration of subnets or sites or by replication latency. See the Exchange setup log for more information on this error.
For more information, visit: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.AdInitErrorRule.aspx
The forest functional level of the current Active Directory forest is not Windows Server 2012 R2 or later. To install Exchange Server 2019, the forest functional level must be at least Windows Server 2012 R2.
For more information, visit: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.ForestLevelNotWin2012R2.aspx
The Windows component RSAT-ADDS-Tools isn't installed on this computer and needs to be installed before Exchange Setup can begin.
For more information, visit: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.RsatAddsToolsInstalled.aspx
Either Active Directory doesn't exist, or it can't be contacted.
For more information, visit: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.CannotAccessAD.aspx
The Exchange Server setup operation didn't complete. More details can be found in ExchangeSetup.log located in the <SystemDrive>:\ExchangeSetupLogs folder.
まず、こちらを見るようにとのことなので、確認します。
https://docs.microsoft.com/en-us/previous-versions/exchange-server/exchange-160/jj126697(v=exchg.160)?redirectedfrom=MSDN
前提条件について書かれているページがあるようなので、確認します。
https://docs.microsoft.com/en-us/Exchange/plan-and-deploy/prerequisites?redirectedfrom=MSDN&view=exchserver-2019
前提条件をざっくりみたら、次はエラーをじっくり眺めます。
まず、2つはなんとかなりそうです。
This computer requires .NET Framework 4.8 (https://support.microsoft.com/kb/4503548).
For more information, visit: https://docs.microsoft.com/Exchange/plan-and-deploy/system-requirements?view=exchserver-2019
The Windows component RSAT-ADDS-Tools isn't installed on this computer and needs to be installed before Exchange Setup can begin.
For more information, visit: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.RsatAddsToolsInstalled.aspx
.Net Framework4.8 のダウンロード
前提条件のページに.Net Framework4.8の直リンがあったので、Curlでダウンロードします。
curl -O .\Desktop\ndp48-x86-x64-allos-enu.exe https://download.visualstudio.microsoft.com/download/pr/014120d7-d689-4305-befd-3cb711108212/0fd66638cde16859462a6243a4629a50/ndp48-x86-x64-allos-enu.exe
.Net Framework4.8 のインストール
ダウンロードした[ndp48-x86-x64-allos-enu.exe]を起動し、インストールします。
リモートツール管理パックをインストール
PowerShell で 以下のコマンドを入力し、実行します。
Install-WindowsFeature RSAT-ADDS
一度再起動します。
とりあえず、ここでもう一度実行してみます。
まだエラーが出ているので、頑張ります。
サブネットの定義
前のエラーでサブネットを定義しろみたいなことが書いてあったので、定義してみます。
※テスト環境を利用していたのでサブネットの定義をしていませんでした。
This computer doesn't belong to a valid Active Directory site. Check the site and subnet definitions.
For more information, visit: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.InvalidADSite.aspx
オンプレADのサブネットの定義方法はスクショし忘れました。割と簡単なので、ささっと調べて定義しましょう!
ついにスキーマ拡張
エラー解消できたと思うので、スキーマ拡張を実行します。
.\setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF
やっとスキーマ拡張できました!
ユーザー属性が追加されたことを確認
ユーザーの属性を確認し、正しくスキーマ拡張されたことを確認します。
しっかりと、[extensionAttribute1]~[extensonAttribute15]が追加されていることを確認できました。
Azure AD Connect でディレクトリスキーマの更新を実行
このままではAzure AD Connectがスキーマに更新があったことを認識しないので、AADCに教えてあげます。
[Azure Active Directory Connect]を起動し、[ディレクトリスキーマの更新]を設定しましょう。
これで、Azure ADに追加したExchange Serverのスキーマ(属性)も連携されます。
まとめ
いかがでしたでしょうか。
一番大変なのはエラーの対処だと思います。しかし、根気よく一つ一つエラー解消すれば、必ず出来るはずです。
今回はExchangeServerのスキーマ拡張だけなので、DomainControllerで実行すればよさそうな気がしました。
ただし、.Netを入れる必要があるので、余分なものは入れたくない人はメンバーサーバ等を使いましょう。
また、作業後の不要なメンバーサーバーをADから外す処理を忘れずに行いましょう。