Active Directory ドメイン サービスを利用すると、システム管理者が各端末やユーザーを一元的に管理することができます。Active Directory は Windows 2000 Server から導入されており、OS のバージョンが上がるごとに新しい機能が追加されています。
Active Directory ドメインでは複数のドメイン コントローラーを構築することができますが、端末ごとに OS のバージョンが異なることがあります。フォレストやドメイン単位で、利用できるドメインの機能を統一するために「機能レベル」が用意されています。機能レベルを設定することにより、利用可能なドメインの機能が統一するため、複数の OS のドメイン コントローラーが混在している環境でも、動作の差異が生じることなく問題が発生することはありません。
今回は、フォレスト、ドメイン内で統一した機能を利用するための仕組みである「機能レベル」について紹介します。
機能レベルとは
Active Directory の「機能レベル」とは、Active Directory ドメイン サービスにて利用できる機能を定義したものとなります。
Active Directory は Windows 2000 Server から導入されており、OS のバージョンが上がるごとに新しい機能が追加されています。ドメイン内で利用できる機能を統一して、OS のバージョンの違いにより動作の問題が発生しないように「機能レベル」が用意されています。
機能レベルには、ドメインの機能レベルとフォレストの機能レベルが用意されています。ドメインの機能レベルはドメイン全体で統一される機能レベルで、フォレストの機能レベルはフォレスト全体で統一される機能レベルとなります。
機能レベルの設定における制約として、ドメインの機能レベルはフォレストの機能レベルより上位の機能レベルの設定にできますが、フォレストの機能レベルはドメインの機能レベルより上位の機能レベルに設定することはできない点に注意してください。例えば、フォレストの機能レベルが “Windows Server 2008” であれば、フォレスト内にある各ドメインのドメインの機能レベルは “Windows Server 2008” 以上より上位の機能レベルのみが利用できます。
各機能レベルの追加機能
各機能レベルで追加されて利用できるようになった機能を紹介していきます。
Windows 2000
フォレストの機能レベル
なし
ドメインの機能レベル
Windows 2000 ネイティブのドメインの機能レベルで以下の機能が追加で利用できるようになります。
- ユニバーサル グループが利用できるようになりました
- グループをネスト化して利用できるようになりました
- セキュリティ グループと配布グループを相互に変換できるようになりました
- SID 履歴が利用できるようになりました
Windows Server 2003
フォレストの機能レベル
Windows Server 2003 のフォレストの機能レベルで以下の機能が追加で利用できるようになります。
- フォレスト信頼が利用できるようになりました
- ドメイン名を変更できるようになりました
- 読み取り専用ドメイン コントローラー(RODC)を展開できるようになりました
- 知識整合性チェッカー(KCC)のアルゴリズムが強化され、スケーラビリティが改善されました (※補足1)
- 指定した時間が経過すると自動的に削除される Dynamic Object が利用できるようになりました
- inetOrgPerson オブジェクトとユーザー オブジェクトを相互に変換できるようになりました
- アプリケーション基本グループが利用できるようになりました
- LDAP クエリ グループが利用できるようになりました
- スキーマの属性とクラスを、非アクティブや設定の変更ができるようになりました
- Linked-Value Replication(LVR) と呼ばれる複製方式がサポートされるようになりました (※補足2)
ドメインの機能レベル
Windows Server 2003 のドメインの機能レベルで以下の機能が追加で利用できるようになります。
- ドメイン管理ツール(netdom.exe)を用いて、ドメイン コントローラーのホスト名を変更できるようになりました
- lastLogonTimestamp 属性が利用できるようになりました
- userPassword 属性が利用できるようになりました
- User コンテナと Computer コンテナをリダイレクトできるようになりました
- 承認マネージャーで承認ポリシーを AD に格納できるようになりました
- Kerberos 制約付き委任が利用できるようになりました
- 信頼関係の設定にて、認証の選択という機能ができるようになりました
Windows Server 2008
フォレストの機能レベル
なし
ドメインの機能レベル
Windows Server 2008 のドメインの機能レベルで以下の機能が追加で利用できるようになります。
- SYSVOL の複製方式として、DFS レプリケーションが利用できるようになりました
- ドメイン ベースの DFS 名前空間において、Windows Server 2008 モードが利用できるようになりました
- Kerberos 認証で使用さえる暗号化方式として、AES 128 および AES 256 が利用できるようになりました
- 最後に対話型ログオンした日時を記録、表示できるようになりました
- 細かい設定が可能なパスワード ポリシー (FGPP : Fine-Grained Password Policy)が利用できるようになりました
- ユーザー アカウントのプロパティ画面にて、[個人用仮想デスクトップ] タブが利用できるようになりました
Windows Server 2008 R2
フォレストの機能レベル
Windows Server 2008 R2 のフォレストの機能レベルで以下の機能が追加で利用できるようになります。
- Active Directory のゴミ箱の機能が利用できるようになりました
ドメインの機能レベル
Windows Server 2008 R2 のドメインの機能レベルで以下の機能が追加で利用できるようになります。
- Kerberos 認証にて、認証メカニズム保証と呼ばれる機能が利用できるようになりました
- 管理されたサービス アカウントで実行されているサービスで動作するコンピューターのコンピューター名を変更した際に、自動的に SPN が変更される管理機能を利用できるようになりました
Windows Server 2012
フォレストの機能レベル
なし
ドメインの機能レベル
Windows Server 2012 のドメインの機能レベルで以下の機能が追加で利用できるようになります。
- Kerberos 認証にて、以下の機能をグループ ポリシーで強制できるようになりました
- Kerberos 認証のパケットに、ユーザーやデバイスの属性値をクレームとして格納できます
- デバイスの Kerberos チケットを使用して、ユーザーの Kerberos 認証を保護できます
- Kerberos チケットにて、ユーザー クレームとデバイス クレームの両方を使用してアクセス制御できます
Windows Server 2012 R2
フォレストの機能レベル
なし
ドメインの機能レベル
Windows Server 2012 R2 のドメインの機能レベルで以下の機能が追加で利用できるようになります。
- Protected Users グループに所属させることで、認証のセキュリティを強化できるようになりました
- NTLM 認証が利用できなくなります
- Kerberos の事前認証における暗号方式として、DES と RC4 が利用できなくなります
- 制限なし委任、また制約付き委任を利用できなくなります
- Kerberos チケット(TGT) の有効期間が 4 時間になります
- 認証ポリシーと認証ポリシー サイトという機能が利用できます。(※補足3)
Windows Server 2016
フォレストの機能レベル
Windows Server 2016 のフォレストの機能レベルで以下の機能が追加で利用できるようになります。
- Microsoft Identity Manager (MIM) を利用することにより、特権アクセス制御(PAM) と呼ばれる機能が利用できます。PAM の機能では、一定期間だけグループに所属させるなど、特権アカウントをより高度に管理できるようになります。
ドメインの機能レベル
- Windows Hello やスマートカード ログオンを強制されているユーザーには、NTLM 認証にてシークレットをローリングする機能が利用できるようになりました。
- 特定のデバイスだけ利用するように制限されたユーザーに対して、ネットワーク ログオンで NTLM 認証の利用を許可できるようになりました
- PKInit Freshness Extension の拡張機能により、公開キーベースの Kerberos 認証のセキュリティがより強化されました。
機能レベルの確認方法
フォレストの機能レベルとドメインの機能レベルを確認するには、ドメイン コントローラーにて確認することができます。PowerShell と管理コンソールそれぞれで確認することができます。
PowerShell での確認方法
管理者権限で PowerShell を開き、以下のコマンド レットを実行します。
フォレストの機能レベルを確認するコマンド レット
PS C:\> Get-ADForest | fl Name,ForestMode
Name : test01.local
ForestMode : Windows2008Forest
PS C:\>
ドメインの機能レベルを確認するコマンド レット
PS C:\> Get-ADDomain | fl Name,DomainMode
Name : test01
DomainMode : Windows2008Domain
PS C:\>
管理コンソールでの確認方法
ドメイン コントローラーにて管理コンソールを開いて、機能レベルを確認することができます。
フォレストの機能レベルの確認方法
ドメインの機能レベルの確認方法
機能レベルを確認するのみであれば、[キャンセル] をクリックして画面を閉じてください。
機能レベルを上げる方法
フォレストの機能レベルとドメインの機能レベルを上げる方法として、PowerShell と管理コンソールそれぞれで変更することができます。また、機能レベルを上げる際に考慮する必要がある点を事前に確認した上で、機能レベルを上げる作業を実施してください。
機能レベルを上げる際の考慮点
ドメインの機能レベルを Windows Server 2008 以上に上げる影響
ドメインの機能レベルを Windows Server 2008 以降に上げると、Kerberos 認証に AES の暗号化方式を利用できるようになります。機能レベルを上げたことを検知すると、各ドメイン コントローラーにて AES に対応する変更処理が行われます。この変更処理がきっかけで、Kerberos 認証に失敗する事象が稀に発生することがあります。この事象が発生したら、対象のドメイン コントローラーにて Kerberos Key Distribution Center サービスを再起動(管理者権限でコマンド プロンプトを開いて、”net stop kdc && net start kdc” を実行)することで解消します。
また、ドメインの機能レベルを Windows Server 2008 以降に上げると、SYSVOL の複製に DFSR が利用できるようになります。Windows Server 2016 R3 以降の OS から、ドメイン コントローラーの SYSVOL の複製に DFSR のみしか利用できなくなります。そのため、Windows Server 2016 R3 以降の OS をドメイン コントローラーとして追加する場合は、事前にドメインの機能レベルを Windows Server 2008 以上に上げて、SYSVOL の複製方式を DFSR に移行しておく必要があります。
ドメインの機能レベルを Windows Server 2008 R2 以上にあげる影響
.NET Framework 3.5 SP1 以前のバージョンで独自開発したアプリケーションにて、Domain.DomainMode プロパティを使用している場合、ドメインの機能レベルを “Windows Server 2008 R2” 以上に上げるとエラーが発生します。エラーの原因は、DomainMode 列挙体の定義に Windows2008R2Domain がないためです。
ドメインの機能レベルの参照する動作がある独自開発したアプリケーションがある場合は、Domain.DomainMode プロパティを利用していないかご確認ください。該当する場合、対処策として Hotfix の適用が必要であるため、マイクロソフトに問い合わせてください。
PowerShell での確認方法
管理者権限で PowerShell を開き、以下のコマンド レットを実行します。
フォレストの機能レベルを変更するコマンド レット
Windows2000Forest | Windows 2000 |
Windows2003Forest | Windows Server 2003 |
Windows2008Forest | Windows Server 2008 |
Windows2008R2Forest | Windows Server 2008 R2 |
Windows2012Forest | Windows Server 2012 |
Windows2012R2Forest | Windows Server 2012 R2 |
Windows2016Forest | Windows Server 2016 |
PS C:\> Set-ADForestMode -forestMode Windows2016Forest -Identity test01.local
確認
この操作を実行しますか?
対象 “CN=Partitions,CN=Configuration,DC=test01,DC=local” に対して操作 “Set” を実行しています。
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は “Y”): y
PS C:\>
ドメインの機能レベルを確認するコマンド レット
Windows2000Domain | Windows 2000 |
Windows2003Domain | Windows Server 2003 |
Windows2008Domain | Windows Server 2008 |
Windows2008R2Domain | Windows Server 2008 R2 |
Windows2012Domain | Windows Server 2012 |
Windows2012R2Domain | Windows Server 2012 R2 |
Windows2016Domain | Windows Server 2016 |
PS C:\> Set-ADDomainMode -domainMode Windows2016Domain -Identity test01.local
確認
この操作を実行しますか?
対象 “DC=test01,DC=local” に対して操作 “Set” を実行しています。
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は “Y”): y
PS C:\>
管理コンソールでの確認方法
ドメイン コントローラーにて管理コンソールを開いて、機能レベルを上げることができます。
フォレストの機能レベルの確認方法
ドメインの機能レベルの確認方法
機能レベルを切り戻す方法
機能レベルを上げた後に元の機能レベルに切り戻す作業は、管理ツールでは切り戻すことはできません。しかしながら、PowerShell の Set-ADForestMode、Set-ADDomainMode のコマンド レットを利用して、元の機能レベルに戻すことが可能です。フォレストの機能レベルとドメインの機能レベルにおける、それぞれの制約を紹介します。
フォレストの機能レベルの切り戻しについて
Active Directory のごみ箱が有効になっていない場合は、Set-ADForestMode にて Windows Server 2008 まで機能レベルを戻すことができます。一方、Active Directory のごみ箱が有効になっている場合は、Set-ADForestMode にて Windows Server 2008 R2 まで機能レベルを戻すことができます。
これのいずれにも該当しない、以下の要件に該当する切り戻しをする場合には、Set-ADForestMode コマンド レットで切り戻すことはできません。
- ごみ箱が有効になっていない環境にて、Windows Server 2003 以下の機能レベルに戻したい場合
- ごみ箱が有効になっている環境にて、Windows Server 2008 以下の機能レベルに戻したい場合
機能レベルの切り戻しにおいて、上記に要件に該当する場合は、フォレスト内の全てのドメイン コントローラーをバックアップからリストアする必要があります。
ドメイン コントローラーにて何か問題が起きた時、バックアップからリストアしたいことがあります。今回はドメイン コントローラーのリストアの手順を紹介します。 事前準備(バックアップ) ドメイン コントローラーをリストアするには、30 日以[…]
ドメインの機能レベルの切り戻しについて
ドメインの機能レベルは、フォレストの機能レベルより下回らない範囲であれば、Set-ADDomainMode にて Windows Server 2008 まで機能レベルを戻すことができます。
もし、ドメインの機能レベルを Windows Server 2003 以下に切り戻したい場合は、ドメイン内の全てのドメイン コントローラーをバックアップからリストアする必要があります。