Windows Serverを運用していると、思わぬタイミングでドメインコントローラ(DC)のNetlogonサービスが起動しないトラブルに遭遇することがあります。ドメイン環境の中核を担う重要なサービスだけに、停止してしまうとActive Directoryへのログオン処理やWindows Timeサービスなど、多岐にわたる機能が影響を受けてしまいます。ここでは、Netlogonサービスが起動しない場合の原因やチェック項目、対処法を豊富な事例やコマンド例とともに解説していきます。
Netlogonサービスの役割と問題の背景
Netlogonサービスは、Windowsドメイン環境における認証プロセスの中核を担うサービスです。具体的には、以下のような役割を持っています。
- ドメインユーザーのログオン認証
ユーザーやコンピュータがドメインに参加している場合、ログオン情報やセキュリティ情報をドメインコントローラで確認し認証する。 - DNS動的更新
ドメインコントローラのDNSレコードを自動的に更新し、クライアントや他のサーバーが正しくドメインコントローラへアクセスできるようにする。 - Windows Timeサービスとの連携
ドメイン環境では、時刻同期にWindows Timeサービス(W32Time)が使われる。Netlogonが正しく動作していない場合、ドメインコントローラ間やクライアントとの時刻同期が正しく行えない。
このようにNetlogonサービスが停止すると、ユーザーがドメインにログオンできない、グループポリシーが適用されない、時刻同期が取れないなど、運用上の大きな問題を引き起こします。特にドメインコントローラでNetlogonが起動しないケースでは、Active Directory関連の管理ツール(Active Directoryユーザーとコンピュータなど)も正しく動作しなくなるため、早急な対処が必要になります。
Netlogonサービスが起動しない主な原因
1. コンピュータ名やドメイン参加状況の不整合
ドメインコントローラのホスト名が何らかの理由でワークグループ名に戻ってしまうケースがあります。これにより、ドメインコントローラであるはずのサーバーが通常のワークグループマシンとして認識され、ドメイン環境が破綻状態に陥ってしまうことが考えられます。具体的には以下のような状況が発生します。
- イベントログ(Event ID 6011など)に「コンピュータ名が変更された」旨の情報が残る
- ドメインに所属しているはずのサーバーがワークグループ表記になっている
- Netlogonサービスだけでなく、Active Directoryサービスや他のドメイン関連サービスも異常を示す
原因としては、誤ったコンピュータ名変更、レジストリ変更の失敗、あるいは何かしらのアップデートや操作ミスによりドメイン設定が失われる等が挙げられます。
2. DNS設定の不備
ドメインコントローラは、通常自分自身をDNSサーバーとして参照し、Active Directoryに必要な各種DNSレコードを動的に登録します。もしDNSサーバーのIPアドレスが誤っている、あるいはDNSのゾーン設定やレコードが壊れていると、Netlogonは開始時の名前解決に失敗し、起動できない状態になる場合があります。DNSエラーが原因の場合、以下のような兆候が見られます。
- イベントビューアにDNS関連のエラー(Event ID 5774や5781など)が記録される
nslookup
コマンドでドメインコントローラの名前解決ができない- サービス起動時に「DNSが見つからない」といったメッセージが表示される
3. 依存関係のあるサービスが起動していない
Netlogonサービスの起動には、RPC(Remote Procedure Call)などの複数サービスが動作している必要があります。通常は問題がなければ自動的にこれらのサービスも連動して起動しますが、セキュリティソフトによるブロックや、設定変更によって依存サービスが停止していると、Netlogonが起動に失敗することがあります。代表的な依存サービスは以下の通りです。
サービス名 | 役割 |
---|---|
RPC (Remote Procedure Call) | Windowsの基本プロセス間通信を担う。これが動作しないと多くのサービスが機能しない。 |
DNS Client | DNS名前解決を行う。ドメイン参加時の名前解決に必須。 |
Workstation | ネットワークファイル共有やプリンタ共有、その他ドメイン機能に関わる。 |
Server | ネットワーク共有の提供側機能。Netlogonとの連携が必要となる。 |
これらのサービスが停止もしくは無効になっていないかをチェックしておくことが重要です。
4. セキュリティソフト・ファイアウォールの影響
ウイルス対策ソフトやサードパーティ製のファイアウォールが、Netlogonの通信をブロックしているケースがあります。ドメインコントローラはさまざまなプロトコルとポートを利用するため、誤設定で関連ポートが遮断されると、サービス開始時に必要な通信が確立できず、起動失敗を引き起こすことがあります。
- 特定のポート(例: TCP/UDP 135, 137-139, 445など)がブロックされていないか
- セキュリティソフトのリアルタイムスキャンがNetlogonやレジストリへのアクセスを阻害していないか
これらを確認し、該当の通信を許可・除外設定に追加することで問題が解決する場合があります。
Netlogonが起動しない場合の対処フロー
1. コンピュータ名・ドメイン参加状況の確認と修正
まず最初に取り組むべきは、システムのプロパティ(またはレジストリエディタ)を確認し、コンピュータが正しくドメインに参加しているかをチェックすることです。場合によっては「コンピュータ名を再度正しいドメイン名に指定し直す」ことで解消するケースも多いです。
- Windowsの「システムのプロパティ」 → 「コンピュータ名」タブを開く
- ドメイン参加になっているか、ワークグループ表記に戻っていないかを確認する
- 必要に応じてドメインから離脱 → 再参加を実施する
もしレジストリを手動で編集する場合は、「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters」などのキーを確認し、HostNameやDomainなどが正しい値になっているかも念のためチェックしましょう。
2. イベントビューアのログ確認
Netlogonサービスに関わるエラーはイベントビューアの「システム」ログや「アプリケーション」ログに詳しく残ることが多いです。特にEvent ID 6011、5719、5774などが関係している場合は、原因の切り分けに大きく役立ちます。
- 「スタート」ボタン → 「ファイル名を指定して実行(Win+R)」 →
eventvwr.msc
- 「Windowsログ」 → 「システム」または「アプリケーション」を選択
- エラーログや警告ログを時系列順で確認し、Netlogon関連のイベントIDを探す
見つかったイベントに記載されているエラーメッセージや説明をもとに、何が原因でNetlogonが起動できないのかを特定していきます。
3. DNS設定の見直し
DNSがうまく動いていないと、ドメインコントローラ同士の通信だけでなく、クライアントからのログオン要求も失敗しやすくなります。以下のポイントを再確認してください。
- ドメインコントローラのネットワーク設定で、優先DNSサーバーに自身のIPアドレス(もしくはドメイン環境内の信頼できるDNSサーバー)を指定しているか
- DNSマネージャーで該当ドメインのフォワードルックアップゾーンのレコードが正しいか
- _msdcs.<ドメイン名>などのSRVレコードが壊れていないか
以下のようにnslookup
コマンドを使うと、名前解決が正しく行えているかを簡単にテストできます。
C:\> nslookup
Default Server: <DNSサーバー名>
Address: <DNSサーバーのIPアドレス>
> set type=SRV
> _ldap._tcp.dc._msdcs.<ドメイン名>
ここで、正しいドメインコントローラのホスト名とIPアドレスが返ってくるかをチェックしてください。
4. 依存サービスの状態とスタートアップ種類の確認
Netlogonサービスが「停止」「無効」に設定されている場合や、依存サービスのいずれかが起動していない場合、Netlogonが立ち上がらないことがあります。まずは以下コマンドでNetlogonの状態を確認します。
sc query netlogon
ここでSTATEが「STOPPED」などになっている場合は、手動で起動を試みるか、あるいは自動(もしくは自動(遅延開始))に設定し直してください。サービスの管理画面(services.msc)からも直接設定可能です。
併せて、依存サービス(RPC、DNS Client、Workstation、Serverなど)が「実行中」になっているか、設定が「自動」または「自動(遅延開始)」になっているかを確認してください。
5. セキュリティソフトやファイアウォール設定の除外
企業環境ではセキュリティ対策が厳重に行われているため、ウイルス対策ソフトやファイアウォールで特定ポートへの通信が制限される場合があります。NetlogonはActive Directoryの関連サービスと連携するため、下記の代表的なポートが開放されているかを確認してください。
- TCP/UDP 135 (RPC)
- TCP/UDP 137,138,139 (NetBIOS関連)
- TCP 445 (SMB)
これらの通信が阻害されると、ログオンや名前解決などが行えず、Netlogonの起動にも影響が及びます。必要に応じてセキュリティソフトの除外リストに追加し、ブロックが解除された状態で再度サービスの起動を試みましょう。
6. レジストリの修正やNetlogonサービス再作成(最終手段)
一般的には上記の手順で問題の大半は解決しますが、どうしても起動しない場合はレジストリ上でNetlogonサービス関連のキーを修正、あるいはサービス自体を再作成する手段があります。ただしこれはリスクが高いため、必ずバックアップを取得し、十分に注意を払って実施する必要があります。
レジストリキーの場所(例):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon
誤って設定してしまうとOSの起動自体に支障をきたす恐れもあるため、専門的な知識を持つ担当者が慎重に対応してください。
または以下のコマンドで一度Netlogonサービスを削除→作成する方法もあります。
sc delete netlogon
sc create netlogon binPath= "C:\Windows\System32\lsass.exe" start= auto
この手法を行う際は必ず事前にシステムの完全バックアップやスナップショットを取得することを推奨します。
具体的な再参加手順の例
ドメインに再参加させる方法を、実際のGUI操作例とコマンドライン例で示します。ドメイン再参加は比較的簡単ですが、操作を誤るとサービスやアプリケーションが影響を受けるリスクがあるため、メンテナンスウィンドウを確保した上で実施しましょう。
GUIでの再参加手順
- 「スタート」ボタン → 「設定」 → 「システム」 → 「バージョン情報」 → 「ドメインまたはワークグループに参加」(または「コンピュータの名前/ドメインの変更」)を開く
- 現在のドメイン名が正しいかを確認し、必要に応じて「ワークグループ」に変更して再起動
- 再度同じ画面から「ドメイン」に加入し直し、ドメインアドミニストレーターの資格情報を入力
- 再起動後、問題が解消されているか確認
コマンドラインでの再参加例
PowerShellを使ってドメインからの離脱→再参加も行えます。
# ドメインからワークグループへの離脱
Remove-Computer -UnjoinDomaincredential <ドメイン\ユーザー名> -PassThru -Verbose -Restart
# ワークグループに属した状態で再度ドメインに参加
Add-Computer -DomainName <ドメイン名> -Credential <ドメイン\ユーザー名> -Passthru -Verbose -Restart
上記のコマンドを実行すると、再起動後にワークグループへ一度移行し、その後で再度ドメインに参加します。この時点でNetlogonや関連サービスが正常に稼働するかどうかを確認してください。
Netlogon関連のログを活用したトラブルシュート
Netlogonデバッグログ(netlogon.log)の取得
より詳細な解析が必要な場合、Netlogonのデバッグログを有効にすると多くの情報が得られます。ただし、ログが大量に生成される可能性があるため、問題解決に必要な期間に限定して有効化し、解析が終わったら速やかに無効化する運用が望ましいです。
手順は以下の通りです。
- レジストリエディタ(regedit.exe)を起動
- 「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters」キーを開く
- “DBFlag” (DWORD値)を追加または編集し、16進数で「0x2080FFFF」に設定
- Netlogonサービスを再起動
すると、以下のディレクトリにNetlogonログ(netlogon.log, netlogon.bak)が生成されます。
C:\Windows\debug\netlogon.log
このログにはドメインコントローラ間の認証処理やエラーの詳細が出力されるため、エラー発生箇所の特定に役立ちます。
nltestコマンドによる検証
Windows Serverにはnltest.exe
というドメイン環境のテストやトラブルシューティングに役立つコマンドラインツールがあります。Netlogonが絡む問題を切り分ける際に非常に便利です。
nltest /dsgetdc:<ドメイン名>
指定したドメインを担当するドメインコントローラ情報を取得しに行きます。ここでエラーが返ってくる場合、DNS設定やドメイン参加状況に問題がある可能性が高まります。
nltest /sc_verify:<ドメイン名>
ドメインとの安全チャネルが正しく確立されているかを確認するコマンドです。安全チャネル(secure channel)に問題があると、Netlogonサービスは認証エラーを起こしやすくなります。
Windows Timeサービスとの連動と注意点
ドメインコントローラにおける時刻同期(Windows Timeサービス)も、Netlogonが正しく機能していることを前提としています。以下のように、両サービスは緊密に連動しています。
- Netlogonが起動していないと、DC同士の認証に問題が生じるためW32Timeが同期元を正しく検出できない
- 大きくずれた時刻はKerberos認証にも影響し、ログオン処理が失敗しやすくなる
もし時間差が原因で認証エラーが多発している場合には、まずWindows Timeサービスの構成を見直し、グローバルなNTPサーバー(または信頼できる内部のNTPサーバー)と同期をとるよう設定してください。
まとめと再発防止策
Netlogonサービスが起動しない現象は、ドメイン環境において極めて重大な障害を引き起こします。特にドメインコントローラ自身のコンピュータ名がワークグループに戻るなど、根本的なドメイン参加情報が書き換わってしまった場合は、修復に時間がかかりやすいです。今回紹介した対処フローを踏まえ、以下のような再発防止策も検討しましょう。
- 定期的なドメインコントローラのヘルスチェック
- 例:
dcdiag
コマンドでADの整合性を確認する - DNSレコードの有効性を検証する
- 変更管理の徹底
- コンピュータ名やレジストリを変更する場合、必ず手順書や承認プロセスを経て実施する
- 変更後にしっかりログの確認やサービス起動のテストをする
- セキュリティソフトの定義やファイアウォールポリシーの更新履歴チェック
- 定期的な除外ポリシーの見直し
- OSアップデートやセキュリティソフトの更新がネットワーク通信設定に影響を与えていないか監視する
- 信頼できるタイムソースの利用
- 内部にNTPサーバーを設置し、ドメインコントローラが時刻を安定して取得できるようにする
- Kerberos認証エラーを防ぐために時刻差を最小限に抑える
トラブルが発生したときには、まずはイベントログを丹念に調べ、DNSや依存サービス、ドメイン参加状況などを一つひとつ検証するのが近道です。もし同様の問題が再度発生した場合には、今回の解説を活用しながら、ドメイン環境を速やかに復旧させていただければ幸いです。
コメント