ドメインにログオンできないというトラブルはよく起こりますが、システム的な原因として次の2つが考えられます。
- DNSの名前解決によるもの
- セキュアチャネルの破損によるもの
他にもさまざまな原因がありますが、今回はこの2つに着目して考えてみます。
DNSの名前解決によるもの
そもそも、クライアント(ここでいうクライアントはメンバーサーバーも含みます)はどのようにドメインにログオンしているのか?
- クライアントはドメインにログオンする際、DNSにドメインコントローラー(DC)は誰なのかを問い合わせます。
- その後、そのDCのアドレスを再度問い合わせて、DCにログオン要求を投げます。
- DCは認証プロセスを行い、GCに対してユーザーのユニバーサルグループメンバーシップ情報を要求します。
- 無事、認証プロセスが終了したのちドメインへのログオンが完了します。
よって、DNSの名前解決がうまくいかないと当然のことながらログオンができないという事態が発生するのです。
ここで着目したいのはDNSサーバーに登録されているSRVレコードになります。
このレコードがないと、そもそも、DCやGC、PDCの役割をどのサーバーが担っているかがわかりません。
これらのレコードはそれぞれのDCが自動的にDNSに登録しています。もし、該当するDCのSRVレコードが登録されていない際には、その登録されていないDC上で「NET STOP NTDS」と「NET START NTDS」コマンドを実行すると再登録が行われます。
それでも、うまく登録されないときは次のファイルを確認しましょう。
%SystemRoot%System32ConfigNetLogon.dns
このファイルにはDCの稼働に必要なレコード(SRVレコードだけでなくAレコードも含む)が記述されていますので要確認です。
セキュアチャネル破損によるもの
ドメインに参加するクライアントは必ずADにコンピューターオブジェクトを登録しなくてはなりません。このコンピューターオブジェクトはセキュリティプリンシパル(SIDを持つオブジェクトの総称)であるので、セキュリティ設定が可能になります。
ドメインとクライアントは自動的にコンピューターオブジェクトに対するパスワード設定を行いセキュリティで保護された通信である”セキュアチャネル”を確立しています。
この設定はグループポリシーによって制御されており、デフォルトの状態では30日毎にパスワードを変更する設定になっています。
では、パスワードの情報はどこに保存されているか?パスワードそのものはわかりませんが、いつパスワードの変更が行われたのかはわかります。
ADからの確認
ADSI エディットを使用して、コンピュータアカウントの [pwdLastSet]を確認する
クライアントからの確認
HKEY_LOCAL_MACHINESECURITYPolicySecrets$MACHINE.ACC
[CupdTime] / [OupdTime]
HKEY_LOCAL_MACHINESECURITYはSYSTEMのみ権限があるのでadministratorに読み取りの権限を付与する必要がある
値を 8 桁 + 8 桁にします。 8e00e451 5b97cc01
値を 2 桁一組として逆から並べ替えます 51e4008e 01cc975b
C:>nltest /time:51e4008e 01cc975b
51e4008e 01cc975b = 10/31/2011 8:26:15
コマンドは正常に完了しました
セキュアチャネル破損の対応
確実な対応としては、ドメインへの再参加になります。
この際に安易にドメインのコンピューターオブジェクトを削除してはいけません。これは、コンピューターオブジェクトがセキュリティプリンシパルだからです。要するにコンピューターオブジェクトが様々なセキュリティグループにメンバーとして追加されている可能性があるからです。
実はコンピューターオブジェクトを削除して再参加すると、以前と同じコンピューター名で新しいコンピューターオブジェクトが追加されます。このオブジェクトは以前使用していたコンピューターオブジェクトとは別物になります。要するに別のSIDになるため、以前のコンピューターオブジェクトと名前は同じですが、SIDが異なるのでセキュリティ設定は引き継がれないことになるのです。
では、どうするか?
コンピューターオブジェクトのパスワードのリセットを行います。その後、そのコンピューターでドメインへの再参加を行います。
この設定を行うと、プレステージング環境に対してコンピューターを参加させるのと同じになります。
セキュアチャネルに関しては次の記事が参考になります。
ドメインにログオンできない ~ セキュア チャネルの破損 ~
追記
コメント
参考にさせて頂きました。