今回は Windows コンピューターで Active Directory ドメインへの参加ができない場合の確認項目を整理してみました。自身がこれまでやってきた経験の中で、特に多かった要素を元に整理していきますので、ドメイン参加ができない場合は参考にしてみてください。
ドメイン参加ができない時の確認
コンピューターが Active Directory ドメインへ参加ができない場合、そもそもネットワーク的に繋がっているかというところからパスワードを間違えていないかなど要素上げればきりがないほど考えられますが、おそらくそんな初歩的なところが原因でないことが大半だと思います。
原因の切り分けを行う上で、クライアント側に問題があるのか/そうでないのかという観点がありますが、今回の “ドメイン参加” というものであれば、利用環境の状況から切り分けを行うこともできます。
切り分けの考え方
はじめに、ドメイン参加を行おうとしている Active Directory 環境について整理します。
ドメインの利用環境は、以下の2つに分けられます。
- 既に運用している Active Directory ドメイン環境
- 新規で構築した Active Directory ドメイン環境
既に運用している Active Directory ドメイン環境の場合、他のクライアントコンピューターはドメインに参加することができているので、原因はドメイン参加を行おうとしているクライアント側にあることが多いです。
逆に新規で構築した(構築中の)環境の場合は、クライアント側の要素もありますが、構成的な部分の担保がされていないことも考えられますので、解決するためにクライアント側には問題がないという確認と切り分けをして進めていく必要があります。
ドメイン参加ができない時の切り分け
クライアント側の切り分けの観点として、大まかに分けると以下のようになるかと思います。
- ドメインコントローラーへ疎通ができるか
- ドメイン名の名前解決が行えるか
まずこれらを確認し、原因の切り分けを行っていきます。
※ドメインコントローラーは DNS サーバーの機能を担っていますので、本記事内で「ドメインコントローラー」と表現しているものの中には「DNS サーバー」の意味も含まれている場合があります。
ドメインコントローラーへの疎通を確認する
最初にドメインコントローラーへの疎通が取れているかを確認します。
この確認で疎通が取れていない場合、以下の原因が考えられますのでこれらを元に解決を行います。
- 宛先 IP アドレスが間違っている
- ファイアウォールの ICMP ポートが閉じている(サーバー)
- LAN ケーブルが抜けている(クライアント or サーバー(可能性は低い))
- ネットワーク経路に問題がある(ルーティング、ポート、ネットワークインターフェース等)
疎通確認の方法について、以下でご紹介していきます。
IPアドレスを確認する(ipconfig コマンド)
疎通確認を行うためのドメインコントローラー(DNS サーバー)の IP アドレスを確認するには、”ipconfig” コマンドに “/all” のオプションを加えたコマンドを実行します。(コマンドプロンプト or PowerShell)
コマンド例
ipconfig /all
コマンド実行例
PS C:\Users\Administrator>ipconfig /all
Windows IP 構成
ホスト名. . . . . . . . . . . . . . .: server01
プライマリ DNS サフィックス . . . . .: contoso.com
ノード タイプ . . . . . . . . . . . .: ハイブリッド
IP ルーティング有効 . . . . . . . . .: いいえ
WINS プロキシ有効 . . . . . . . . . .: いいえ
DNS サフィックス検索一覧. . . . . . .: contoso.com
イーサネット アダプター イーサネット:
接続固有の DNS サフィックス . . . . .:
説明. . . . . . . . . . . . . . . . .: Microsoft Hyper-V Network Adapter
物理アドレス. . . . . . . . . . . . .: 00-15-5D-**-**-**
DHCP 有効 . . . . . . . . . . . . . .: いいえ
自動構成有効. . . . . . . . . . . . .: はい
IPv4 アドレス . . . . . . . . . . . .: 192.168.1.100(優先)
サブネット マスク . . . . . . . . . .: 255.255.255.0
デフォルト ゲートウェイ . . . . . . .: 192.168.1.254
DNS サーバー. . . . . . . . . . . . .: 192.168.1.1
NetBIOS over TCP/IP . . . . . . . . .: 有効
PS C:\Users\Administrator>
出力結果から ”DNS サーバー” の値を確認します。
実行例の場合、”192.168.1.1″ が DNS サーバーの IP アドレスということになります。
ここに IP アドレスが表示されない場合は、そもそも参照先の DNS サーバーの設定がされていないので、サーバーの IP アドレスを確認して設定を入れましょう。
疎通を確認する(ping コマンド)
ドメインコントローラー(DNS サーバー)への疎通確認を行うには、”Ping” コマンドにて宛先に対し通信ができるかを確認します。(コマンドプロンプト or PowerShell)
コマンド例
ping <ドメインコントローラーのIPアドレス>
コマンド実行例
PS C:\Users\Administrator>ping 192.168.1.1
192.168.1.1 に ping を送信しています 32 バイトのデータ:
192.168.1.1 からの応答: バイト数 =32 時間 <1ms TTL=128
192.168.1.1 からの応答: バイト数 =32 時間 <1ms TTL=128
192.168.1.1 からの応答: バイト数 =32 時間 <1ms TTL=128
192.168.1.1 からの応答: バイト数 =32 時間 <1ms TTL=128
192.168.1.1 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 0ms、最大 = 0ms、平均 = 0ms
PS C:\Users\Administrator>
このように Ping の応答が返ってきていることを確認します。
失敗している場合は以下のような結果が返ってきます。
コマンド実行例
PS C:\Users\Administrator>ping 192.168.1.1
192.168.1.1 に ping を送信しています 32 バイトのデータ:
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。
192.168.1.1 の ping 統計:
パケット数: 送信 = 4、受信 = 0、損失 = 4 (100% の損失)、
PS C:\Users\Administrator>
“要求がタイムアウトしました。” と表示される場合は、疎通が行えていないということになります。
疎通を確認する(ポート)
ポートの疎通確認は「Test-NetConnection」コマンドでクライアントから確認ができます。「Test-NetConnection」については、別の記事でまとめたものがありますので、興味があればご参考にしていただければと思います。
ドメインコントローラーとの通信に必要なポートについて、以下を参考に確認してください。
これらの方法で、どこに問題があるのかを割り出します。
- 宛先 IP アドレスが間違っている
- ファイアウォールのポートが閉じている
- LAN ケーブルが抜けている(クライアント or サーバー(可能性は低い))
- ネットワーク経路に問題がある(スイッチやルーティング)
これらを元にひとつずつ確認していきましょう。宛先 IP アドレスの確認や LAN ケーブルなど、クライアント側でできる確認を行い、それでも解決しない場合はシステム担当者に確認が必要となります。
ドメイン名の名前解決を確認する
ドメインコントローラーに対して疎通が取れていることが確認できた場合は、名前解決が行えるかを確認します。この確認により、設定している DNS サーバーの IP アドレスが正しいか、また名前解決が正常に動作しているかを確認していきます。
この確認で名前解決ができていない場合、以下の原因が考えられますのでこれらを元に解決を行います。
- 参照先 DNS サーバーの IP アドレスが間違っている
- 参照先の Active Directory ドメインのサービスが停止している
- ファイアウォールの 53 番ポートが閉じている(TCP/UDPの53番ポート)
名前解決の確認について、以下でご紹介していきます。
名前解決を確認(nslookup コマンド)
ドメイン名の名前解決を行うには、”nslookup” コマンドを実行します。
コマンド例
nslookup <ドメイン名>
コマンド実行例
PS C:\Users\Administrator>nslookup contoso.com
サーバー: UnKnown
Address: 192.168.1.1
名前: contoso.com
Address: 192.168.1.1
PS C:\Users\Administrator>
このようにドメイン名の IP アドレスの値が表示されている場合は、正常に名前解決が行われていることを判断することができます。
失敗している場合は以下のような結果が返ってきます。
コマンド実行例
PS C:\Users\Administrator>nslookup contoso.com
サーバー: UnKnown
Address: 192.168.1.1
*** UnKnown がcontoso.com を見つけられません: Non-existent domain
PS C:\Users\Administrator>
“*** UnKnown が<ドメイン名> を見つけられません” と結果が返ってきている場合は、名前解決が正常に動作していないという判断をすることができます。
この結果から、以下に問題があると考えられます。
- 参照先 DNS サーバーの IP アドレスが間違っている
- 参照先の Active Directory ドメインのサービスが停止している(ドメインコントローラー)
- ファイアウォールの 53 番ポートが閉じている(TCP/UDPの53番ポート)
これらを元にひとつずつ確認していきましょう。参照先に設定している DNS サーバーの IP アドレスの確認はクライアント側で行なえますが、ドメインコントローラーのサービス正常性については、システム担当者に確認が必要となります。
その他に考えられる原因(複数NIC)
これらが全て問題なくてもドメイン参加ができないトラブルが解決しない際は以下を疑ってみるとよいかもしれません。
- ネットワークインターフェースが複数あることによる影響
ネットワークインターフェースが複数ある場合、通信させたい NIC とは別の NIC から意図せず通信を行ってしまっている場合があります。
ネットワークインターフェースのメトリック値の優先度によるものや、間違ったネットワークインターフェースへデフォルトゲートウェイが設定されているなどは見落としがちなのでトラブルが解決しない場合は、あらためて設定を確認してみましょう。