Q

Windows 2000のドメイン・コントローラをバックアップからリストアしたら,そのマシンでセキュア・チャネルに関するエラーが出るようになりました。どう対処すべきでしょうか。

A

リストアしたドメイン・コントローラ(DC)とPDCエミュレータとなるDCとの間で情報の不整合が起きたためです。セキュア・チャネル(安全なチャネル)が確立できずに「Schannel」をソースとするエラー・イベントが出力されます。原因としては,バックアップ・データが古くセキュア・チャネルのパスワード更新期間を過ぎている場合などが考えられます。

 Windows 2000のセキュア・チャネルのパスワード更新間隔は初期設定で30日になっています(Windows NTでは7日でした)。30日より前のバックアップ・データでDCを復元したときに起こり得る現象です。

 ドメインに参加したマシンでは,ドメインへのログオンにNetlogonサービスが使われます。Netlogonサービスはコンピュータ間の通信のために暗号化で保護された個別の通信チャネル(セキュア・チャネル)を確立します。セキュア・チャネルを確立するときにはコンピュータ・アカウントとそのパスワードが使用されます。コンピュータ・アカウントのパスワードは管理ツールからは見えませんが,DCおよびクライアント側に格納されます(図1)。通常,変更されたパスワードはPDCエミュレータに複製されます。


図1●ドメインに参加するとセキュア・チャネルが作成される
Windows NT系列のOSは,ドメインに参加するとNetlogonサービスによりセキュア・チャネルを構成する。セキュア・チャネルの確立にはコンピュータ・アカウントとそのパスワードを使用する。

コンピュータ・アカウントの
パスワード・リセットが基本対策

 一般に対策は次のようになります。現象が起きたのがWindows NT/2000/XPクライアントやWindows NT/2000のメンバー・サーバーでしたらドメインに参加し直して対応します。Windows 2000 Serverの管理ツール[Active Directory ユーザとコンピュータ]などを利用できます。

 ご質問のように,DCでエラーが出た場合,ドメインに参加し直す操作は標準機能ではできません。エラーが出たDCを再インストールして解決するのが基本です。

 ただし,エラーが出ているDCをどうしても再インストールしたくないときは,ツールで対処します。

 管理者アカウントでローカル・ログオンしたら,エラーが出ているDCに以下のツールをインストールします。
●Windows 2000 Serverリソース・キットのKerbtray.exe
●Windows 2000 Support Toolsのnetdom.exe
●Windows 2000 Support Toolsのrepadmin.exe


図2●DCでログオンできないトラブルが起きた場合のセキュア・チャネルの回復方法
トラブルが発生したDCで各種作業が必要になる。

 次にこれらを実行します。手順は図2のようになります。現象が発生したDC上で作業します。
(1)「net stop KDC」コマンドを実行するなどで「KDC(Kerberos Key Distribution Center)サービス」を停止します。
(2)「Kerbtray.exe」を起動してKerberos認証チケットをクリアします。タスク・バー右下のKerbtrayのアイコンを右クリックして出るメニューから[Purge Tickets]を実行します。さらに[管理ツール]-[サービス]から,[Kerbeos Key Distribution Center]サービスの[スタートアップの種類]を[無効]にした後,DCを再起動します。

(a)コンピュータ・アカウントをリセットする
netdom resetpwd /Server:<PDCエミュレータ名> /userD:<domain>\administrator /passwordD:<パスワード>
例 netdom resetpwd /Server:w2kad1 /userD:nbptest\administrator /passwordD:12345678
(b)PDCエミュレータの"NTDS Settings"objectGuidの確認
repadmin /showreps <PDCエミュレータ名>
例 repadmin /showreps w2kad1
(c)コンピュータ・アカウントの複製
repadmin /sync <Domain NC> <複製パートナ> <PDCエミュレータの"NTDS Settings"オブジェクトのobjectGuid>
例 repadmin /sync DC=nbptest,DC=com
w2kad3 52d2336a-bb17-474a-8b51-aa028914f80b

(d)複製パートナとPDCエミュレータとの間で複製リンク(接続)を作成
repadmin /add <Domain NC> <複製パートナFQDN> <PDCエミュレータFQDN> /u:<domain>\administrator /pw:<パスワード>
例 repadmin /add DC=nbptest,DC=com w2kad3.nbptest.com w2kad1.nbptest.com /u:nbptest\administrator /pw:12345678
図3●このトラブル解決に実行するコマンドの例
例示したコマンドは,図2の環境を想定している。

(3)図3(a)のnetdomコマンドを実行してコンピュータ・アカウントをリセットします。
(4)図3(b)のコマンドを実行して,PDCエミュレータの"NTDS Settings"objectGuidを表示させます。出力のうちPDCエミュレータのobjectGuidを記録します(図4)。
(5)記録した"NTDS Settings"objectGuidを指定して,PDCエミュレータおよび現象が発生したDCと複製パートナの関係にあるDCとの間でコンピュータ・アカウントを同期します。図3(c)のコマンドをコマンド・プロンプトから実行します。


△ 図をクリックすると拡大されます
図4●PDCエミュレータの"NTDS Settings"objectGuidの確認

 図2の複製パートナDCが,PDCエミュレータの複製パートナとしてリンクされていない場合このコマンドは失敗します。その場合は,複製パートナとPDCエミュレータとの間で複製リンクを作成します。図3(d)のコマンドを実行します。

 最後に,エラーが出たDCのKDCサービスの[スタートアップの種類]を元の[自動]に戻し,サービスを起動してください。

山川秀明