排查 Netlogon 服务启动失败问题

本文介绍导致 Netlogon 服务启动失败的方案的症状、原因和解决方案。 仅当计算机加入 Active Directory 时,Netlogon 服务才会运行。 当计算机仅加入 Microsoft Entra ID 时,Netlogon 服务不会运行。

Netlogon 服务简介

域成员上的 Netlogon 服务支持以下功能:

  • New Technology LAN Manager (NTLM) 登录请求
  • Kerberos 特权属性证书(PAC)验证
  • 域控制器(DC)发现
  • 管理服务器的ServicePrincipalNames
  • 管理系统的计算机帐户密码

在 DC 上,Netlogon 服务还处理以下任务:

  • 启动后共享 SYSVOL 和 NETLOGON 目录
  • 域名系统(DNS)中 NTDS 记录(A、AAAA 和 SRV)的注册
  • 管理 DC 函数 ServicePrincipalNames
  • 维护信任密码
  • 读取和构建 DC 定位器服务器端需要告知客户端其所在站点的子网/站点映射
  • 维护用于安全检查的已知受信任域的列表(信任扫描程序)

服务依赖项

若要完成这些操作,Netlogon 需要操作系统中其他组件和服务的支持。 Netlogon 称为服务依赖项,取决于下图中记下的服务:

Netlogon 服务依赖项的关系图。

Netlogon 服务依赖于工作站服务。 工作站服务取决于浏览器、MrxSMB20、NSI 服务等。 在 DC 上,Netlogon 服务对服务器服务具有附加依赖项,这依赖于 SAMSS 和 SRV2 服务,而 SRV2 服务依赖于 SRVNET 服务,依此而论。

这些依赖关系详细记录在服务 MMC 管理单元(Services.msc)中的服务属性的 “依赖项” 选项卡内。此依赖项配置存储在每个服务的注册表密钥中的 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 注册表项下。 每个服务密钥中包含的是一个 DependsOnService 值,用于定义该服务的特定直接依赖项。 例如,DC 的 Netlogon 服务注册表项中,DependOnService 值定义了包含LanmanWorkstation LanmanServer 的数据。

若要查看 Netlogon 服务的依赖项,请使用服务 MMC 并检查服务属性:

Netlogon 服务属性的屏幕截图。

查询依赖项的另一种方法是使用 Service Control Manager 配置工具(sc.exe)命令行实用工具。 下面是用于查询 DC 的 Netlogon 服务依赖项的配置的命令的输出 QC

C:\Windows\System32>sc qc netlogon

[SC] QueryServiceConfig SUCCESS

SERVICE_NAME: netlogon
   TYPE               : 20 WIN32_SHARE_PROCESS
   START_TYPE         : 2 AUTO_START
   ERROR_CONTROL      : 1 NORMAL
   BINARY_PATH_NAME   : C:\Windows\system32\lsass.exe
   LOAD_ORDER_GROUP   : MS_WindowsRemoteValidation
   TAG                : 0
   DISPLAY_NAME       : Netlogon
   DEPENDENCIES       : LanmanWorkstation
                      : LanmanServer
   SERVICE_START_NAME : LocalSystem

或者您可以导航到 Netlogon 服务注册表项来检查服务配置:

  1. 打开注册表编辑器。

  2. 浏览到所需的服务密钥。 在此示例中,路径为 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon

    注册表编辑器的屏幕截图,其中显示了 Netlogon 密钥信息。

  3. 确认设置正确。 例如,已配置依赖项(DependOnService 值)、开始类型已定义(Start 值),并且定义了服务二进制文件(ImagePath 值)。

故障排除

如果依赖服务无法启动,则该服务和依赖于该服务的任何服务都未启动。 调查 Netlogon 服务启动失败时,必须确定哪个服务负责所有其他依赖服务的故障。 例如,以下事件日志是 Netlogon 服务无法启动时报告的系统事件日志错误。 由于工作站(LanmanWorkstation)服务依赖项(浏览器)之一未能启动,导致失败:

日志名称: 系统
源: 服务控制管理器
事件 ID:7001
级别:错误
说明:Netlogon 服务取决于由于以下错误而无法启动的 LanmanWorkstation 服务:
依赖项服务或组无法启动。

日志名称: 系统
源: 服务控制管理器
事件 ID:7001
级别:错误
说明:LanmanWorkstation 服务依赖于 bowser 服务,而由于以下错误,bowser 服务无法启动。
服务无法启动,因为它处于禁用状态,或者没有与其关联的已启用设备。

Netlogon 启动失败问题

Netlogon 启动失败(或任何依赖服务启动失败)可能需要采取一个或多个步骤来解决问题。 这些措施可以包括(但不限于):

  • 修复禁用的从属服务。
  • 更正无效或缺少服务配置注册表值。
  • 还原缺失或损坏的可执行文件或 DLL 文件。
  • 更正限制性注册表权限。

以下部分介绍了一些事件日志错误,这些错误指示 Netlogon 无法启动。

症状 1

依赖服务未启动:

日志名称: 系统
源: 服务控制管理器
事件 ID:7001
级别:错误
说明:Netlogon 服务依赖于 <服务名称> 服务,该服务由于以下错误而无法启动:
依赖项服务或组无法启动。

决议

检查依赖服务以确定哪些服务无法启动。 使用服务管理单元 (MMC) 查看和修改服务配置,确认服务的启动配置是否正确。

在以下示例中,工作站服务配置有 “已禁用” 启动类型,因此处于 “已停止 ”状态:

services.msc 的屏幕截图,其中显示了工作站服务已禁用。

工作站服务属性的屏幕截图,其中显示了禁用的启动类型。

启动类型 设置为 “自动 ”并启动服务可还原工作站服务作。

症状 2

为 Netlogon 服务或从属服务定义了一项不存在或无效的服务。

日志名称: 系统
源: 服务控制管理器
事件 ID:7003
级别:错误
说明:Netlogon 服务取决于以下服务: <缺少或无效的服务>。 可能不会安装此服务。

决议

在 Netlogon 服务的 DependOnService 注册表值中可能配置了无效的服务,或者此值中引用的服务可能作为已安装的服务缺失。 在以下示例中,成员服务器上的 Netlogon 服务无法启动,因为它无法验证依赖服务。

日志名称: 系统
源: 服务控制管理器
事件 ID:7003
级别:错误
说明:Netlogon 服务取决于以下服务:Contoso_Service。 可能不会安装此服务。

删除 DependOnService 注册表值中找到的有问题的条目:

显示如何编辑 DependOnService 注册表值的屏幕截图。

显示如何从 DependOnService 注册表值中删除条目的屏幕截图。

症状 3

指定的服务动态链接库(DLL)无效或缺失导致依赖服务无法启动:

日志名称: 系统
源: 服务控制管理器
事件 ID:7001
级别:错误
说明:Netlogon 服务依赖于 <SERVICE NAME> 服务,但由于以下错误未能启动。
找不到指定的模块。

尝试使用服务 MMC 启动 Netlogon 服务时,将显示以下错误消息:

Windows 无法在本地计算机上启动 Netlogon 服务。 错误 126:找不到指定的模块。

决议

每个服务应用程序必须成功初始化 DLL 才能正常工作。 若要解决此问题,请使用系统文件检查器(SFC.exe)工具执行系统文件扫描,从备份还原缺少的 DLL,或者修复或重新安装作系统。

有关详细信息,请参阅使用系统文件检查器工具修复丢失或损坏的系统文件

症状 4

指定的无效或缺失的服务可执行文件导致依赖服务无法启动:

日志名称: 系统
源: 服务控制管理器
事件 ID: 7000
级别:错误
说明:Netlogon 服务由于以下错误而无法启动:
系统找不到指定的文件。

尝试使用 Services MMC 启动 Netlogon 服务时,将显示以下错误消息:

Windows 无法在本地计算机上启动 Netlogon 服务。 错误 2:系统找不到指定的文件。

决议

通过服务 MMC 查看服务属性时,请验证未能启动的服务是否在 “路径到可执行文件” 字段中配置了有效值。 或者,验证受影响的服务的注册表中 ImagePath 值是否正确。

症状 5

Netlogon 服务报告服务在系统启动期间进入停止状态。 尝试手动启动服务时,将显示以下错误消息:

本地计算机上的 Netlogon 服务已启动,然后停止。 某些服务在其他服务或程序未使用的情况下自动停止。

决议

验证注册表中的服务权限是否设置为适当的值。 权限会根据系统角色的不同而有所变化,例如域控制器与工作站或成员服务器之间的区别。 确保没有条目为 SYSTEM管理员指定拒绝权限。 默认情况下,注册表权限继承自父注册表项,所有者配置为 SYSTEM

症状 6

Netlogon 已成功启动,但服务状态不会报告为 “已启动 ”或 “正在运行 ”,而是报告为 “已暂停”。 对于域成员,状态可由管理员通过运行 Net pause netlogonNet continue netlogon设置。 在 services.msc 管理单元中,服务显示为以下屏幕截图:

Netlogon 服务状态的屏幕截图。

还可以在域控制器上暂停或恢复 Netlogon 服务。

注释

当 Netlogon 服务暂停时,DC 不会响应 DC 定位器请求(在 LDAP 端口 UDP/389 上)。 然后,计算机不用于 NTLM 身份验证或新的 Kerberos 票证。

决议

由于配置问题,DC 上的 Netlogon 服务可能会暂停。 Netlogon.log包含以下有关原因的条目:

  • Netlogon 服务已暂停

    Netlogon 服务由管理员暂停。

  • NlInit:DS 已暂停

    目录服务已暂停。

  • 正在等待 RPCSS

    RPC 子系统等待启动。

  • SysVol 未就绪

    DFSR 的初始复制尚未完成。

如果 DFSR 复制引擎未指示 SYSVOL 的初始复制已正常工作并且可以共享,则可能导致最后一个条件。 因此,Netlogon 服务处于暂停状态,直到复制完成,并且仅在复制完成后共享 SYSVOL 和 Netlogon。 若要排查此故障,请参阅排查分布式文件系统 (DFS) 复制中缺少的 SYSVOL 和 Netlogon 共享

其他症状

  1. 其他服务(如 Windows 时间服务或组策略服务)可能会报告由于 Netlogon 服务未启动而导致操作失败。

    日志名称: 系统
    来源:Microsoft-Windows-Time-Service
    事件 ID:159
    级别: 警告
    说明:W32time 无法与 Netlogon 服务通信。 此故障会阻止 NTPClient 识别和使用域内对等体,并导致 Netlogon 无法正确播发 W32time 服务状态。 这可能是一个暂时性条件,可以很快自行解决。 如果此警告在相当长的时间内重复,请确保 Netlogon 服务正在运行且响应迅速,并重启 W32time 服务以重新初始化总体状态。 错误0x80070700:尝试登录,但未启动网络登录服务。

    日志名称: 系统
    来源:Microsoft-Windows-Time-Service
    事件 ID:130
    级别: 警告
    说明:NtpClient 无法将域对等方设置为用作时间源,因为无法建立此计算机与“litware.com”域之间的信任关系,以便安全地同步时间。 NtpClient 将在 15 分钟后重试,此后重试间隔时间将增加一倍。 错误为:RPC 服务器不可用。 (0x800706BA)

    日志名称: 系统
    来源:Microsoft-Windows-GroupPolicy
    事件 ID:1110
    级别:错误
    说明:组策略处理失败。 Windows 无法确定用户和计算机帐户是否位于同一林中。 确保用户域名与驻留在计算机帐户所在的同一林中的受信任域的名称匹配。

  2. 未启动 Netlogon 服务时,依赖于 Netlogon 服务的管理或其他作也会失败:

    nltest /sc_query:litware.com
    
    I_NetLogonControl failed: Status = 1722 0x6ba RPC_S_SERVER_UNAVAILABLE
    
    net use \\192.168.1.11 /user:litware\administrator
    
    System error 1792 has occurred.
    
    An attempt was made to logon, but the network logon service was not started.
    
  3. DC 定位符无法找到错误代码为 1355 的 DC,或显示“指定的域不存在或无法联络”。

  4. 如果所有可访问的 DC 已停止其 Netlogon 服务,域信任关系可能会失败:

    日志名称: 系统
    来源:NETLOGON
    事件 ID:5719
    级别:错误
    说明:由于以下原因,此计算机无法在域 <域中> 设置与域控制器的安全会话:
    无法使用此凭据登录,因为你的域不可用。 请确保你的设备已连接到组织网络,然后重试。 如果你以前在此设备上使用其他凭据登录过,可以使用该凭据登录。
    这可能会导致身份验证问题。 确保此计算机已连接到网络。 如果问题仍然存在,请联系域管理员。

    注释

    如果此计算机是指定域的 DC,则会在指定域中设置与主域控制器(PDC)模拟器的安全会话。 否则,此计算机会在指定域中与任何域控制器建立安全会话。