nltest (Network Location Test)nltest.exe 域测试工具,Windows Netlogon 测试诊断命令行工具; C:\Windows\SysWOW64\nltest.exe(32 位)System32\nltest.exe(64 位)域控制器发现、Netlogon 安全通道测试、BDC 复制、域信任、站点查询、DNS 域注册诊断;
nltest.exe 完整解构
nltest.exe域测试工具,Windows Netlogon 测试诊断命令行工具;路径C:\Windows\SysWOW64\nltest.exe(32 位)、C:\Windows\System32\nltest.exe(64 位)。 用途:域控制器发现、Netlogon 安全通道测试、BDC 复制、域信任、站点查询、DNS 域注册诊断;属于 Windows 支持工具,原生内置在域控 / 企业版 Windows。 分析框架:底层原理|依赖文件|依赖关系|配套链|逻辑链路|边界约束
底层原理
nltest.exe 本身只是命令行前端外壳程序,不实现域协议业务逻辑;所有核心能力调用 Netlogon API(Netlogon RPC),底层基于 MS‑RPC / Netlogon 协议。
核心业务模型:
- 安全通道(Secure Channel):域成员机器与域控之间通过 Netlogon 建立加密安全通道,使用机器账户密码会话密钥,用于身份认证、策略下发、BDC 数据库复制。
- DC 定位(DC Locator):通过 DNS SRV 记录 + NetBIOS 广播查找域控制器、AD 站点;
- Netlogon RPC:RPC 接口与域控通信,执行查询、验证、强制同步、信任关系枚举;
- BDC(备份域控制器)复制:NT4 时代 BDC 数据库同步,现代 AD 域已经废弃 BDC,但 API 与工具参数仍然保留兼容。
重要区分:
- NT4 域:真实 BDC 数据库复制;
- Active Directory(2003‑2025):不再使用 BDC,全部是多主复制;nltest 里 BDC 相关参数仅做遗留兼容。
依赖文件
| 文件路径 | 组件 | 角色 |
|---|---|---|
nltest.exe |
主程序 | 命令行 UI 外壳,解析命令行参数,调用 netlogon 客户端 API,输出控制台文本 |
netlogon.dll |
Netlogon 客户端 RPC/API 库 | 核心业务实现;安全通道、DC 定位、RPC 调用封装;nltest 绝大部分功能由该 dll 输出函数提供 |
%SystemRoot%\System32\svchost.exe -k netsvcs 承载 Netlogon 服务 |
netlogon 服务 (%systemroot%\system32\netlogon.dll) |
用户态服务进程;维护机器安全通道、DC 发现缓存、处理 RPC 客户端请求 |
rpcrt4.dll |
RPC 运行时 | MS‑RPC 底层传输,Netlogon 全部基于 RPC |
dnsapi.dll |
DNS 客户端 API | DC Locator 查询 DNS SRV 记录,定位域控制器 |
netapi32.dll |
网络管理 API | 部分域信息查询封装 |
注册表关键存储
HKLM\SYSTEM\CurrentControlSet\Services\Netlogon:Netlogon 服务配置,安全通道参数、DC 缓存、站点配置HKLM\SECURITY\Policy\Secrets\$MACHINE.ACC:机器账户密码(加密存储),用于建立域安全通道
依赖关系
硬依赖
- Netlogon 服务必须运行:服务停止,nltest 绝大多数命令(安全通道、DC 查询、BDC、信任测试)直接失败报错。
- RPC 子系统 (rpcrt4.dll):Netlogon 基于 MS‑RPC,RPC 不可用则全部 RPC 类子命令失效。
- DNS 客户端正常工作:DC Locator 依赖 DNS SRV 记录;DNS 故障无法定位域控。
- 网络连通域控:TCP 135 + Netlogon 动态 RPC 端口;DNS 53。
域成员机器额外依赖
- 本机已经成功加入 Active Directory 域;机器账户有效;安全通道建立正常。
- 权限:多数子命令需要管理员权限;普通用户仅部分只读查询可用。
可选依赖
- NetBIOS:DC Locator 降级时使用 NetBIOS 广播(旧兼容,现代 AD 优先 DNS)。
- WINS 服务器:NT4 遗留场景。
不依赖
- ❌不依赖 AD‑DS 数据库本地;nltest 是客户端诊断工具,不需要本机是域控。
- ❌SysWOW64 下 32 位 nltest.exe 可以运行在 64 位系统,功能完全等价 64 位版本,只是 32 位进程加载 32 位 netlogon.dll。
注意:图片中截图就是 SysWOW64 (32 位) 版本 nltest /? 输出,参数列表完整。
配套链完整链路
链路 1:测试安全通道 nltest /sc_query:DOMAINNAME
nltest.exe 解析命令参数
↓调用 netlogon.dll 导出Netlogon API
netlogon.dll → RPCRT4.dll发起Netlogon RPC到本地Netlogon服务(svchost netlogon)
↓
本地Netlogon服务读取注册表机器账户凭据;执行DC Locator(DNS SRV查询),找到可用域控
↓
向远程域控建立Netlogon加密安全通道RPC会话
↓
域控返回安全通道状态、绑定的DC名称
↓
结果通过RPC逐层回传给nltest.exe,控制台打印状态
链路 2:BDC 强制同步 nltest /sync(NT4 遗留)
nltest.exe → netlogon.dll RPC
本地Netlogon服务向NT4 PDC发起BDC复制RPC请求
↓
PDC执行SAM数据库增量同步,推送给BDC
> 在现代AD域环境运行该参数:会返回不适用;AD使用NTDS多主复制,不使用这套BDC同步机制。
链路 3:查询 DC 列表 nltest /dclist:DOMAIN
nltest.exe
↓
netlogon.dll调用DC Locator API
↓ dnsapi.dll查询DNS _ldap._tcp.dc._msdcs.<domain> SRV记录
解析得到域控制器列表、站点信息
↓
nltest输出DC名称、IP、站点名
逻辑链路
- 启动初始化 nltest.exe 启动,解析命令行参数(截图中全部 /? 展示的参数:
/SERVER/QUERY/SC_QUERY/BDC_QUERY等);加载netlogon.dll。 - 分支执行两类命令
- 本地查询:读取本机 Netlogon 注册表、缓存;
- RPC 远程命令:通过本地 Netlogon 服务与域控制器 RPC 交互。
- DC Locator 逻辑 优先 DNS SRV 记录;DNS 失败降级 NetBIOS 广播;返回匹配当前 AD 站点的域控制器。
- 安全通道操作逻辑 Netlogon 服务使用本地加密存储的机器账户密码,和域控协商会话密钥,建立加密 Netlogon 会话;nltest 只是触发测试,不持有明文机器密码。
- 输出逻辑 把 RPC 返回的结构化数据,格式化打印控制台 stdout;可重定向输出到文件。
- 遗留 BDC 逻辑说明
/REPL/SYNC/PDC_REPL/LIST_DELTAS全部是 NT4 BDC 时代接口。 Windows 2003 以后 AD 抛弃 BDC 模型;AD 使用 NTDS ISM 多主复制,nltest 不能触发 AD 复制;AD 复制使用 repadmin。
边界约束
- 环境边界
- 工作组机器:安全通道相关命令全部报错;只能执行少量 DNS / 站点查询;
- 域成员工作站:可以测试安全通道、查找 DC;不能执行 BDC 同步;
- 域控制器:完整支持全部遗留 BDC 参数,但 AD 环境 BDC 复制 API 无实际效果。
- 权限边界
- 安全通道查询、重置、BDC 操作、信任查询,必须管理员权限;
- 普通域用户仅可以执行部分只读 DC 列表查询。
- 版本 & 兼容边界
- NT4 域:BDC 复制参数完全生效;
- Active Directory 域 (2003‑2025):BDC 相关参数为API 兼容占位;AD 复制使用 repadmin.exe,不要使用 nltest 做 AD 复制。
- 服务边界 Netlogon 服务停止:
nltest /sc_query直接失败;报错:Could not get netlogon service state。 - 协议 & 端口边界 Netlogon RPC 依赖:DNS UDP53,TCP135 + RPC 动态端口;防火墙阻断会导致 nltest 命令超时失败。
- 32/64 位边界 SysWOW64 下 32 位 nltest.exe,参数、行为和 System32 的 64 位版本完全一致;只是进程位数差异,输出帮助文本一模一样,截图就是 32 位版本。
-
功能边界区分(极易混淆)
工具 用途 nltest.exe Netlogon 安全通道、DC 定位、NT4‑BDC 诊断;不能操作 AD 对象复制 repadmin.exe Active Directory NTDS 多主复制、域控之间复制状态诊断;AD 域标准复制工具 - 安全边界 nltest 仅做诊断,不会修改 AD 数据库;部分参数如
/SC_RESET会重置本机机器账户安全通道,会改变本机与域控之间的会话密钥。 - 参数边界(截图参数说明) 截图中可见大量遗留参数:
/REPL/SYNC/PDC_REPL/BDC_QUERY/LIST_DELTAS,均为 NT4 BDC 兼容;现代 AD 日常高频使用:/sc_query/dclist/dsgetdc。
核心研判总结
nltest.exe是 Netlogon 服务的命令行诊断外壳,业务全部由netlogon.dll和本地 Netlogon 服务完成;核心场景:域安全通道测试、域控制器定位诊断;大量 BDC 复制参数为 NT4 遗留,Active Directory 环境不用于 AD 复制,AD 复制应使用 repadmin。

nltest.exe(Network Location Test,微软登录服务器测试工具)完整拆解・解构
基础定位
C:\Windows\System32\nltest.exe(64 位系统)
C:\Windows\SysWOW64\nltest.exe(32 位兼容版本)核心本质
nltest.exe 是 Netlogon 协议配套命令行诊断前端程序,自身不实现底层网络认证逻辑;所有能力通过调用 Win32 DCLocator API、Netlogon RPC 接口,封装 Netlogon 远程协议(NRPC),面向 AD 域、NT4 域提供排错能力。历史溯源:最早出自 Windows NT4 Resource Kit,Windows Vista/Server2008 起内置进系统。
- DCLocator:定位域控制器 DC、GC 全局编录、KDC、时间服务器
- 安全通道(Secure Channel)查询 / 重置(机器账户域信任)
- 域信任关系测试、跨域通道验证
- 控制 Netlogon 调试日志开关
- 查询 DNS SRV 域控记录、站点信息
- 兼容 NT4 BDC 数据库同步、远程服务器关机(遗留功能)
Netlogon 服务正常运行。一、底层原理拆解
1. 整体调用模型
nltest.exe(命令行前端)
↓ 调用 Win32 API
netlogon.dll(客户端Netlogon接口库)
↓ RPC本地通道(LPC)
Netlogon服务(svchost.exe -k netsvcs -p 承载)
↓ NRPC Netlogon远程协议(TCP 445 / RPC动态端口)
远程域控制器 Netlogon服务
2. 两大核心底层技术体系
① DC 定位器(DCLocator,DsGetDcName API)
/dsgetdc、/dclist等参数的底层实现- DNS 模式(现代 AD 默认):查询 DNS
_ldap._tcp.<domain>SRV 记录,筛选可用域控 - NetBIOS/Mailslot 模式(NT4 兼容):UDP 138 mailslot 广播查询(已逐步废弃)
Netlogon 服务负责缓存 DC 结果;
/force参数强制绕过本地缓存重新查询。
② Netlogon Secure Channel(安全通道)
- NTLM 传递认证
- 域策略下发、登录验证
- 域间信任通信
⚠️关键点:Kerberos 认证不依赖安全通道;但 NTLM、机器账户密码更新、Netlogon RPC 操作必须依靠安全通道。nltest /sc_query//sc_reset就是直接操作这条通道。
③ NRPC(Netlogon Remote Protocol)
- TCP 445(SMB 传输 NRPC)
- RPC 动态端口(默认 49152~65535)
3. 重要概念区分
- nltest.exe = 控制台封装工具
- netlogon.dll = 用户态 API 层
- Netlogon 服务(% SystemRoot%\System32\netlogon.dll,svchost 加载)= 内核交互、RPC 服务主体
二、依赖文件清单(Windows 平台)
🔹 直接加载 DLL(nltest.exe 进程内)
netlogon.dll:核心依赖,提供 DsGetDcName、I_NetLogonControl 等全部 Netlogon APIrpcrt4.dll:RPC 运行时库,本地 LPC、远程 NRPC 通信dnsapi.dll:DNS 解析,查询 SRV/A 记录(DCLocator DNS 模式)advapi32.dll:安全上下文、注册表读写(读取 Netlogon 配置)kernel32.dll / ntdll.dll:基础进程 APIws2_32.dll:Windows 套接字网络支持
🔹 系统服务依赖(硬性前置条件)
- Netlogon(Net Logon)
宿主:
svchost.exe -k netsvcs -p绝对核心;服务停止后绝大多数 nltest 指令返回1722 RPC_S_SERVER_UNAVAILABLE - Dnscache(DNS 客户端缓存)
宿主:
svchost.exe -k netsvcs -pDC 定位 DNS 解析依赖 - RpcSs(RPC 端点映射器,svchost -k rpcss)
Windows 所有 RPC 通信基础,不可缺失
- Workstation(LanmanWorkstation)
SMB 传输 NRPC、访问远程服务器共享通道依赖
🔹 内核层依赖
tcpip.sysTCP/IP 协议栈afd.sysWinsock 套接字驱动mrxsmb.sysSMB 协议驱动(NRPC over SMB 通信)
🔹 关键注册表路径
# Netlogon全局配置
HKLM\SYSTEM\CurrentControlSet\Services\Netlogon
# Netlogon调试日志标志(nltest /dbflag 修改此处)
HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\DBFlag
# 机器账户安全通道缓存信息
HKLM\SECURITY\Policy\Secrets
# DC定位缓存
HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\DcNameCache
🔹 日志载体
%windir%\debug\netlogon.log
nltest /dbflag:0x2000FFFF 开启详细调试日志。三、依赖关系梳理
上游调用链路
横向依赖约束
- 防火墙端口约束
DC 定位 + Netlogon 通信必须放行:UDP53 (DNS)、TCP/UDP389 (LDAP)、TCP445 (SMB/NRPC)、RPC 动态端口
- DNS 正确性约束
AD 环境下客户端 DNS 必须指向承载
_msdcs区域的域控 DNS 服务器,否则 DCLocator 查询失败。 - 时间同步约束
安全通道协商、Kerberos 间接依赖系统时间与 DC 偏差≤5 分钟。
下游对外输出
四、完整逻辑链路(典型场景)
链路 1:查询域控制器 nltest /dsgetdc:contoso.com /force
1. nltest调用 netlogon.dll → DsGetDcName API
2. API通知本地Netlogon服务,/force 要求清空本地DC缓存
3. Netlogon调用dnsapi.dll 查询DNS:_ldap._tcp.contoso.com SRV记录
4. 获取DC列表、IP地址、站点信息
5. Netlogon尝试连通候选DC,验证可用性
6. 将DC信息回传给nltest.exe,格式化打印输出
链路 2:查询安全通道 nltest /sc_query:contoso.com
1. nltest调用 I_NetLogonControl2 API
2. 本地Netlogon服务读取当前机器账户安全通道状态
3. 通过NRPC RPC向目标DC发起通道验证
4. DC校验机器账户密码会话密钥
5. 返回通道状态(可信/失效),nltest打印结果
链路 3:重置安全通道 nltest /sc_reset:contoso.com
1. 通知Netlogon销毁现有安全通道
2. 使用本机机器账户凭据重新与DC协商建立加密通道
3. 协商失败常见原因:机器账户密码与AD数据库不同步(域脱域经典故障)
链路 4:开启 Netlogon 调试日志
nltest /dbflag:0x2000FFFF
↓
修改注册表 HKLM\...\Netlogon\Parameters\DBFlag
↓
Netlogon服务实时读取标志,开启详细日志写入 %windir%\debug\netlogon.log
链路 5:典型故障断链场景
-
Netlogon 服务停止现象:所有 RPC 类命令返回
1722 RPC服务器不可用解决:net start netlogon -
DNS 配置错误,无法解析 SRV 记录现象:
/dsgetdc返回错误 1355(找不到域控制器) -
防火墙拦截 TCP445/RPC 动态端口现象:DC 能被 DNS 解析,但是安全通道测试超时失败
-
机器账户密码失效(安全通道破裂)现象:
/sc_query返回错误 1789,工作站无法登录域,可使用/sc_reset尝试重建 -
普通用户无管理员权限现象:部分参数执行返回访问拒绝(安全通道重置、修改调试标志)
五、配套运维命令链(标准排错流水线)
# 1. 检查Netlogon服务状态
Get-Service Netlogon
# 2. 定位域控制器(强制刷新缓存)
nltest /dsgetdc:contoso.com /force
# 3. 查询当前域安全通道状态
nltest /sc_query:contoso.com
# 4. 重置安全通道(域机器信任修复)
nltest /sc_reset:contoso.com
# 5. 开启完整Netlogon调试日志
nltest /dbflag:0x2000FFFF
# 关闭日志
nltest /dbflag:0x0
# 6. 查询域信任关系
nltest /trusted_domains
# 7. 列出域内所有DC
nltest /dclist:contoso.com
六、运维边界、安全风险与高频误区
高频误区
安全风险要点
- 内网渗透信息搜集
攻击者可利用 nltest 枚举域控列表、信任域、站点信息,是域内信息收集常用命令;EDR 可监控进程创建事件 4688 告警异常调用。
/sc_reset滥用风险恶意管理员可远程强制重置机器安全通道,导致工作站脱离域、无法登录。- Netlogon 协议历史漏洞(CVE-2020-1472 Zerologon)
漏洞底层就是 Netlogon NRPC 协议,nltest 可作为漏洞验证辅助工具。
分层排障思路(域登录故障标准流程)
- 检查 Netlogon 服务运行状态
- 使用
/dsgetdc验证 DC 定位(区分 DNS 故障 / 网络故障) /sc_query判断安全通道是否完好- 开启 Netlogon 日志深入定位协商失败原因
七、极简核心总结
nltest.exe= Netlogon 服务命令行前端工具,自身不含底层网络认证代码,依赖netlogon.dll调用系统 API;- 两大核心场景:DC 定位(DCLocator)、安全通道(Secure Channel)管理;底层依靠 NRPC Netlogon 远程协议;
- 强依赖
Netlogon系统服务(netsvcs 分组 svchost 承载),服务停止工具基本失效; - 现代 AD 依靠 DNS SRV 记录查找域控;保留 NT4 兼容的 NetBIOS/Mailslot 广播机制;
- 域环境排错核心工具,同时也是内网渗透信息收集常用载体,建议纳入审计监控;
- 安全通道破裂(机器账户密码不同步)是企业域最常见故障,
/sc_reset是标准修复手段。
nltest.exe 完整参数手册解构(基于截图中文帮助界面)
基础总览
nltest.exe
C:\Windows\System32\nltest.exe
核心运行模型回顾
nltest.exe 命令行解析器
↓ 调用 netlogon.dll 导出API
本地 Netlogon 服务(svchost.exe -k netsvcs -p)
↓ NRPC (MS-NRPC) Netlogon远程协议
域控制器 / NT4 BDC
nltest /? 输出的完整中文参数列表,下面按功能分组拆解参数、底层原理、调用链路。一、参数分类 + 底层原理对应(截图逐条解析)
1. BDC 复制同步类(NT4 遗留,现代 AD 几乎废弃)
nltest NT4‑PDC‑BDC 相关参数对照表
适用场景:Windows NT4 域环境 PDC ↔ BDC 数据库同步;Active Directory 域不再依赖此机制,参数仅做 API 兼容占位,无实际 AD 复制效果
参数 底层技术原理 NT4 域实际行为 AD 域 (2003‑2025) 表现 /SERVER:<ServerName>指定远程目标服务器,作为后续所有操作的远端端点;底层建立 Netlogon RPC(NRPC) 会话到目标主机 将后续 /REPL//SYNC等操作定向到指定 BDC 服务器执行可以建立 RPC 会话;但 BDC 复制相关指令执行后返回不适用,不会触发 NTDS 复制 /REPL强制 BDC 增量同步 SAM 数据库;调用 Netlogon RPC NetDatabaseSync增量同步接口;仅同步 PDC 上发生变更的 SAM 记录BDC 向 PDC 拉取自上次同步之后增量的用户、组、机器账户 SAM 变更,增量复制,开销小 执行返回提示 BDC 复制机制已废弃;不会触发 AD NTDS 复制,AD 复制使用 repadmin /SYNC强制 BDC 完整全量同步 SAM 数据库;调用 Netlogon RPC 全量同步接口,传输完整 SAM 数据库快照 BDC 丢弃本地 SAM 副本,从 PDC 下载完整的 SAM 用户账户数据库;IO 与网络开销大,耗时高 直接返回不支持;不会做任何 AD 数据库全量同步操作 /PDC_REPL强制从 PDC 推送 UAS(User Account Set 用户账户集)变更消息给 BDC;PDC 主动向 BDC 发送变更通知,触发 BDC 同步动作 PDC 主动广播 UAS 变更事件,通知 BDC 立刻执行 SAM 同步,不需要等待 BDC 轮询周期 API 入口保留,但是没有 BDC 接收方;调用无实际业务效果 补充配套 NT4‑BDC 相关参数(截图内可见)
参数 底层技术原理 NT4 域实际行为 AD 域 (2003‑2025) 表现 /BDC_QUERY:<DomainName>Netlogon RPC 查询域内 BDC 复制状态;读取 BDC 的 SAM 复制元数据、上次同步时间戳 查询指定域下 BDC 列表,输出每台 BDC 上次同步时间、同步状态 返回没有 BDC 可用;AD 无 BDC 角色 /LIST_DELTAS:<FileName>读取 NT4 变更日志文件,解析 SAM 数据库增量变更记录 (delta 日志) 解析 BDC 本地存储的 SAM 更改日志文件,展示账户变更条目 AD 没有 SAM delta 日志文件,该参数仅针对 NT4 数据库文件 关键研判说明
- NT4 模型:PDC 为唯一可写 SAM 源,BDC 只读副本,复制由 Netlogon RPC 完成;
- AD 模型:废除 PDC/BDC 主从,全部域控多主 NTDS 复制,由ISM(Intersite Messaging)+DS‑RPC完成,和 Netlogon 无关;
- AD 环境禁止使用
nltest做复制排查;复制状态诊断标准工具:repadmin.exe。
现代 AD 提示:Windows 2003 + 域移除 BDC 概念,这类参数仅兼容旧 NT4,域环境基本不再使用。
2. 安全通道 Secure Channel 核心组(企业域排错最高频)
| 参数 | 底层行为 |
|---|---|
/SC_QUERY:<DomainName> |
查询本机 / 远端服务器与目标域之间安全通道状态
I_NetLogonControl2 查询通道信息 |
/SC_RESET:<DomainName>[\DcName] |
重建安全通道
|
/SC_VERIFY:<DomainName> |
验证现有安全通道有效性,发送测试 RPC 报文校验链路与密钥 |
/SC_CHANGE_PWD:<DomainName> |
修改本机存储的机器账户密码,同步更新 DC 内计算机对象密码 |
/SC_QUERY 返回 1789 = 安全通道破裂。3. DC 定位 DCLocator 系列(DsGetDcName API 族,AD 核心)
DsGetDcName / DsGetDcOpenNextClose,也就是 Windows 标准 DC 定位器| 参数 | 原理说明 |
|---|---|
/DCLIST:<DomainName> |
获取域内所有域控制器列表;优先查询 DNS SRV 记录 |
/DCNAME:<DomainName> |
获取域 PDC 模拟器主机名 |
/DSGETDC:<DomainName> |
调用 DsGetDcName 定位可用 DC
/PDC /GC /KDC /TIMESERV /NETBIOS /DNS /IP /FORCE
/FORCE:绕过本地 Netlogon DC 缓存,强制重新 DNS 查询 |
/DS13 |
DsGetDcName 扩展筛选参数集:TRY_NEXT_CLOSEST_SITE、站点优先级、LDAP-only、备用 DC 等 |
/DNSGETDC:<DomainName> |
DsGetDcOpen/Next/Close,枚举 DNS 注册的所有 DC 记录;用于校验 DC DNS 注册完整性 |
/DSGETSITE |
获取本机当前所属 AD 站点名称(基于子网定位) |
/DSGETSITECOV |
查询站点子网覆盖信息 |
/DSADDRESSTOSITE |
IP 地址反向匹配 AD 站点 |
定位流程标准链路:执行nltest /dsgetdc:x.com→ netlogon.dll → Netlogon 服务 → dnsapi.dll 查询_ldap._tcp.x.com SRV→ 筛选可达 DC 返回结果。
4. DNS 域控注册管理(AD DNS 运维)
| 参数 | 作用 |
|---|---|
/DSREGDNS |
强制本机重新向 DNS 注册所有 DC 相关 SRV/A 记录 |
/DSDEREGDNS:<DnsHostName> |
注销指定 DC 主机在 DNS 上的 AD 记录 |
/DSQUERYDNS |
查询 DC DNS 记录状态,校验 SRV 记录健康度 |
5. 域信任、林信任相关
| 参数 | 底层原理 |
|---|---|
/DOMAIN_TRUSTS |
查询服务器上所有域信任关系
/PRIMARY /FOREST /DIRECT_OUT /DIRECT_IN /ALL_TRUSTS |
/DSGETFTI:<TrustedForest> |
调用 LsaQueryForestTrustInformation 查询林信任信息 |
/LSAQUERYFTI |
LSA 安全子系统读取林信任数据 |
/PARENTDOMAIN |
获取本机域父域名 |
6. 登录权限、用户登录校验
| 参数 | 说明 |
|---|---|
/WHOWILL:<Domain>* <User> |
查询:域是否允许该用户登录本机;模拟登录权限判定逻辑 |
/FINDUSER:<User> |
自动查找哪个信任域拥有该用户账户,多域林环境排错利器 |
/LOGON_QUERY |
查询累计登录尝试计数器 |
7. Netlogon 调试日志控制(域登录故障深度排查)
| 参数 | 底层行为 |
|---|---|
/DBFLAG:<HexFlags> |
修改注册表:HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\DBFlag
%windir%\debug\netlogon.log
0x2000FFFF = 开启完整调试日志;0x0 = 关闭日志 |
8. 摘要、安全哈希、时间转换
| 参数 | 说明 |
|---|---|
/CDIGEST / /SDIGEST |
获取客户端 / 服务端 Netlogon 摘要(NTLM、安全通道协商哈希计算) |
/TIME:<Hex LSL>:<Hex MSL> |
Windows NT FILETIME(64 位时间戳)转换为可读 GMT 时间 |
9. 遗留运维功能(NT4 时代)
| 参数 | 说明 |
|---|---|
/BDC_QUERY:<DomainName> |
查询 BDC 复制状态 |
/LIST_DELTAS:<FileName> |
读取 NT4 SAM 更改日志文件 |
/SHUTDOWN / /SHUTDOWN_ABORT |
远程关闭服务器(遗留,现代环境很少使用) |
/TRANSPORT_NOTIFY |
通知 Netlogon 网络传输变更(网卡 / IP 变更触发刷新 DC 缓存) |
二、依赖文件完整清单(结合参数执行链路)
进程直接加载 DLL(nltest.exe 内部)
netlogon.dll核心依赖:导出全部 Netlogon 客户端 API(DsGetDcName、I_NetLogonControl2 等)rpcrt4.dll:RPC 运行库,本地 LPC 通信 + 远程 NRPC 协议封装dnsapi.dll:DNS 解析,所有 DC 定位、DNS 相关参数依赖advapi32.dll:注册表读写(/DBFLAG修改注册表)、安全上下文ws2_32.dll:TCP/UDP 套接字kernel32.dll、ntdll.dll
必须运行的系统服务
- Netlogon(Net Logon)
宿主:
svchost.exe -k netsvcs -p几乎所有参数执行的后端主体;服务停止,绝大部分命令返回1722 RPC_S_SERVER_UNAVAILABLE - RpcSs(RPC Endpoint Mapper)
svchost -k rpcss - Dnscache DNS 客户端缓存
svchost -k netsvcs -p - LanmanWorkstation(工作站服务,SMB 承载 NRPC)
内核依赖
tcpip.sys、afd.sys、mrxsmb.sys(SMB 传输 NRPC 流量)关键注册表路径
HKLM\SYSTEM\CurrentControlSet\Services\Netlogon
HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\DcNameCache
HKLM\SECURITY\Policy\Secrets # 机器账户安全通道凭据
三、完整逻辑执行链路(以高频命令举例)
链路示例 1:nltest /sc_query:contoso.com
1. nltest.exe 解析命令参数
2. 调用 netlogon.dll::I_NetLogonControl2
3. 通过LPC本地RPC发送请求至【Netlogon服务】
4. Netlogon服务读取本地缓存的安全通道信息
5. 发起NRPC加密会话,向目标域DC验证通道密钥
6. 结果沿原路回传给nltest,格式化文本输出到控制台
链路示例 2:nltest /dsgetdc:contoso.com /force
1. 参数解析识别DsGetDcName调用
2. netlogon.dll通知Netlogon服务,/force要求清空本地DC缓存
3. Netlogon调用dnsapi.dll查询DNS SRV记录
4. 尝试连通候选域控制器,校验可用性
5. DC信息返回nltest打印
链路示例 3:nltest /dbflag:0x2000FFFF
1. nltest调用advapi32写入注册表DBFlag键值
2. Netlogon服务实时监控该注册表项变更
3. 立刻启用详细日志,写入%windir%\debug\netlogon.log
四、典型故障断链场景(参数执行失败)
-
Netlogon 服务停止所有 RPC 类参数报错:1722 RPC 服务器不可用✅修复:
net start netlogon -
/dsgetdc返回错误 1355(找不到域控制器)根因:客户端 DNS 未指向 AD DNS 服务器,无法解析_msdcsSRV 记录 -
/sc_reset重置安全通道失败根因:本机与 DC 时间偏差过大、防火墙拦截 TCP445/RPC 动态端口、机器账户在 AD 中被禁用 / 删除 -
/DSREGDNS执行失败权限不足(需要管理员)或本机网卡无法联系 DNS 服务器 -
普通用户执行部分参数提示拒绝访问
/SC_RESET、/DBFLAG、/DSREGDNS必须管理员权限令牌
五、运维配套标准命令流水线(基于截图参数)
# 1. 查看域控(强制刷新缓存)
nltest /dsgetdc:contoso.com /force
# 2. 检查安全通道状态
nltest /sc_query:contoso.com
# 3. 修复破裂安全通道
nltest /sc_reset:contoso.com
# 4. 开启Netlogon详细日志
nltest /dbflag:0x2000FFFF
# 关闭日志
nltest /dbflag:0x0
# 5. 查询域信任关系
nltest /domain_trusts /all_trusts
# 6. 强制重新注册DC DNS记录
nltest /dsregdns
六、安全边界与攻防要点
- 信息搜集载体
攻击者可以利用
nltest /dclist、/domain_trusts枚举域控、信任拓扑,属于内网渗透常用工具;建议 EDR 监控 4688 进程创建日志,告警异常 nltest 执行。 - 历史漏洞关联
底层协议 MS-NRPC 存在 Zerologon (CVE-2020-1472),nltest 可以辅助验证 Netlogon 协议连通性。
- 滥用风险
恶意管理员执行
/sc_reset会强制断开机器域信任,批量终端断网脱域。
七、极简核心总结
- nltest.exe 只是命令行解析外壳,所有业务逻辑转发至
netlogon.dll与系统 Netlogon 服务; - 参数分为四大板块:NT4 BDC 同步(淘汰)、安全通道管理、DC 定位 DCLocator、AD DNS / 信任运维;
/SC_*系列是企业域最常用排错指令,解决机器账户安全通道故障;/DSGETDC底层封装 Windows 标准 DsGetDcName DC 定位 API,依靠 DNS SRV 记录查找域控;- 所有跨主机通信基于 NRPC Netlogon 远程协议,依赖 TCP445/RPC 动态端口;
/DBFLAG通过注册表开关 Netlogon 日志,是域登录疑难问题核心排查手段。
nltest.exe 工具完整解读(图中参数翻译 + 功能分类)
一、工具基础介绍
nltest.exe(Network Location Test)是 Windows 内置AD 域诊断工具,存放在 C:\Windows\System32,无需额外安装,域管理员核心排错工具,核心用途:- 检测域安全通道(机器域信任)状态
- 查询 / 定位域控制器 (DC)、全局编录 (GC)、KDC
- 验证域间信任关系、复制同步状态
- 排查登录、DNS 解析、站点、复制日志问题
- 远程 DC 关机、调试 Netlogon 日志
运行要求:PowerShell/CMD管理员权限,普通用户部分参数会返回权限拒绝。
二、图中参数完整中文翻译 + 功能分组
1. 基础目标指定
| 参数 | 翻译 & 用途 |
|---|---|
/SERVER:<ServerName> |
指定远程操作的域控制器 / 服务器,不写默认本地机器 |
2. Netlogon 服务 & 复制同步类(NT4 BDC/AD 复制)
| 参数 | 翻译 & 用途 |
|---|---|
/QUERY |
查询目标服务器 Netlogon 服务运行状态 |
/REPL |
强制在目标 BDC 执行部分同步(兼容 NT4 域) |
/SYNC |
强制在目标 BDC 执行完整全量同步 |
/PDC_REPL |
强制从目标 PDC 执行 UAS 账户数据库变更同步 |
3. 安全通道(机器信任)排错(最常用)
| 参数 | 翻译 & 用途 |
|---|---|
/SC_QUERY:<Domain> |
查询本机与指定域的安全通道连接状态(排查机器脱域、信任失效) |
/SC_RESET:<Domain>[\<DCName>] |
重置域安全通道,可选指定 DC 重建信任(解决错误 5/1789) |
/SC_VERIFY:<Domain> |
验证当前域安全通道是否正常连通 |
/SC_CHANGE_PWD:<Domain> |
修改本机与域之间存储的机器账户安全密码 |
4. 域控制器 DC 查询(定位 DC/GC/KDC)
基础 DC 列表
/DCLIST:<DomainName>:列出域内所有域控制器/DCNAME:<DomainName>:获取当前登录使用的 DC 名称
精细化 DC 筛选 /DSGETDC:<域名> 配套筛选标记(逗号分隔叠加)
/PDC /DS /DSP /GC /KDC /TIMESERV /GTIMESERV /WS /NETBIOS /DNS /IP /FORCE /WRITABLE /AVOIDSELF /LDAPONLY /BACKG /DS_6 ~ DS_13 /KEYLIST /TRY_NEXT_CLOSEST_SITE /SITE:<站点名> /ACCOUNT:<账户名> /RET_DNS /RET_NETBIOS /XDC /WRITABLE /LDAPONLY /FORCE /SITE_SPEX
/GC:仅返回全局编录服务器/KDC:仅返回 Kerberos 密钥分发中心/WRITABLE:仅返回可写 AD DC(排除只读 RODC)/SITE:<SiteName>:仅查询指定 AD 站点内 DC/FORCE:强制绕过缓存,重新 DNS 查询 DC/AVOIDSELF:不返回本机作为 DC
站点 / 林信任查询
/DSGETSITE:获取本机所属 AD 站点/DSGETSITECOV:查询 DC 站点覆盖范围/LSAQUERYFTI:<TrustedForest>:查询林信任信息/DSGETFTI:<Domain>:获取域林信任配置
DNS 相关 DC 记录
/DSADDRESSTOSITE:<机器名>:通过 IP / 主机名匹配对应 AD 站点/DSREGDNS:让 DC 重新注册所有 AD 相关 DNS 记录/DSDEREGDNS:注销 DC 指定 DNS 记录/DSQUERYDNS:查询 DC DNS 记录最新更新状态
5. 域信任关系管理
/DOMAIN_TRUSTS [/PRIMARY /FOREST /DIRECT_OUT /DIRECT_IN /ALL_TRUSTS /V]查询本机所有域 / 林信任,/V输出详细信任属性(方向、类型、SID、有效期)/WHOWILL:<域>* <用户>:测试指定域是否允许该用户登录/FINDUSER:<用户>:查找哪个信任域可以解析该用户账户
6. 用户、时间、登录审计
/USER:<UserName>:查询目标 DC 上指定用户账户基础信息/TIME:<Hex LSL> <Hex MSL>:将 Windows NT 格林威治十六进制时间转可读 ASCII 时间/LOGON_QUERY:查询本机累计域登录尝试次数
7. 复制日志 & 调试
/LIST_DELTAS:<文件名>:读取并展示 AD 变更日志文件内容/DBFLAG:<HexFlags>:设置 Netlogon 服务十六进制调试日志标记(抓登录 / 信任日志)/TRANSPORT_NOTIFY:通知 Netlogon 服务刷新网络传输协议
8. 摘要校验(客户端 / 服务端绑定)
/CDIGEST:<消息> /DOMAIN:<域名>:生成客户端校验摘要/SDIGEST:<消息> /RID:<十六进制RID>:生成服务端校验摘要
9. 远程服务器关机
/SHUTDOWN:<原因> [秒数]:远程关闭指定 DC,填写关机原因与延迟倒计时/SHUTDOWN_ABORT:取消正在执行的远程关机操作
三、高频实战示例(管理员常用命令)
- 检查本机域安全通道(最常用)
nltest /sc_query:contoso.com
Connection Status = 0;报错5代表信任断裂,需重置通道。- 重置失效的机器域信任
nltest /sc_reset:contoso.com
- 列出域内所有可写域控制器
nltest /dsgetdc:contoso.com /writable
- 查看所有域信任关系详情
nltest /domain_trusts /v
- 强制 DC 重新注册 DNS 记录(DNS 缺失排错)
nltest /dsregdns
- 查询当前登录使用的域控制器
nltest /dcname:contoso.com
四、排错场景速查
| 故障现象 | 推荐 nltest 命令 |
|---|---|
| 电脑提示 “此工作站和主域间的信任关系失败” | /sc_query → /sc_reset |
| 客户端找不到域控制器、登录缓慢 | /dsgetdc:<域> /force 强制刷新 DC 列表 |
| 域复制异常、BDC 不同步 | /sync / /repl 强制同步 |
| DNS SRV 记录丢失、DC 无法被发现 | /dsregdns 重新注册 DNS |
| 跨域访问 / 信任失败 | /domain_trusts /v 检查信任状态 |
| Netlogon 日志抓包调试 | /dbflag:0x2000ffff 开启全量日志 |
五、注意事项 ⚠️
- 重置安全通道(
/sc_reset)仅修复机器账户信任,不能修复用户密码、域管理员权限问题; /shutdown远程关机需要目标 DC 本地管理员权限;/dsgetdc带/force会触发 DNS 查询,网络不通时会超时;- Windows 10/11 专业版、所有 Server 系统自带该工具,家庭版无 nltest;
- 所有修改类参数(重置密码、同步、关机)必须管理员身份运行。
nltest.exe 完整应用场景分类(AD 域运维 / 排错全覆盖)
一、域机器信任通道故障(最高频场景)
场景 1:工作站脱域报错「此工作站和主域间的信任关系失败」
- 现象:域账户无法登录、提示密码错误、事件 ID 5722
- 对应命令:
powershell
# 检测通道状态 nltest /sc_query:contoso.com # 重建机器与域的信任通道 nltest /sc_reset:contoso.com
场景 2:服务器长时间离线,机器账户密码过期失效
/sc_change_pwd强制更新机器账户密钥。场景 3:验证跨站点、跨林服务器安全通道连通性
nltest /SERVER:BRANCH-DC01 /sc_verify:contoso.com
二、域控制器 (DC) 定位与 DNS SRV 记录排错
场景 1:客户端登录缓慢、找不到域控、无法获取组策略
- 根因:本地缓存 DC 地址失效、DNS SRV 记录缺失
- 操作:强制绕过缓存重新查询可用 DC
powershell
nltest /dsgetdc:contoso.com /force
场景 2:排查全局编录 GC、KDC、时间服务器寻址异常
# 仅查询全局编录服务器
nltest /dsgetdc:contoso.com /gc
# 仅查询Kerberos认证服务器KDC
nltest /dsgetdc:contoso.com /kdc
场景 3:DC DNS 记录丢失、客户端无法解析域控
# 让DC重新向DNS服务器注册所有AD相关记录
nltest /dsregdns
# 校验DNS记录更新状态
nltest /dsquerydns
场景 4:区分可写 DC 与只读域控 RODC
nltest /dsgetdc:contoso.com /writable
三、AD 站点、林信任、跨域访问故障
场景 1:客户端异常连接异地 DC,跨站点流量暴涨
# 查看本机所属AD站点
nltest /dsgetsite
# 通过服务器IP反查对应站点
nltest /dsaddresstosite:192.168.10.20
场景 2:跨域 / 跨林资源访问失败、账户无法跨域登录
- 查看当前所有域、林信任关系(单向 / 双向、林信任、外部信任)
powershell
nltest /domain_trusts /v - 测试目标用户能否通过信任域完成身份解析
powershell
nltest /whowill:child.contoso.com admin@contoso.com nltest /finduser:john@external.com
场景 3:多林环境林信任配置校验
nltest /lsaqueryfti:trustedforest.com
四、AD 复制、Netlogon 服务同步排错(兼容 NT4 BDC + 现代 AD)
场景 1:旧版 NT4 BDC 与 PDC 复制不同步、账户数据不一致
/SYNC:强制全量同步 BDC 数据库/REPL:增量部分同步,适合小批量变更/PDC_REPL:从 PDC 主控同步用户账户数据库 UAS 变更
场景 2:读取 AD 变更日志排查复制冲突
nltest /list_deltas:C:\ADlog\delta.log
场景 3:Netlogon 服务异常、未监听网络传输
nltest /transport_notify
五、登录审计、账户信息、调试日志抓取
场景 1:统计服务器累计域登录失败次数,排查暴力破解
nltest /logon_query
场景 2:快速查询 DC 上指定域用户基础信息
nltest /SERVER:DC01 /USER:zhangsan
场景 3:开启 Netlogon 详细调试日志,深度定位登录 / 信任报错
nltest /dbflag:0x2000ffff
六、域服务器远程运维操作
场景 1:远程关闭 / 重启域控制器(维护窗口操作)
# 30秒延迟关机,标注维护原因
nltest /SERVER:DC02 /SHUTDOWN:AD服务器维护 30
# 中止已下发的关机指令
nltest /SERVER:DC02 /SHUTDOWN_ABORT
七、AD 迁移、升级、环境巡检场景
- 域迁移前巡检:批量导出所有 DC、站点、信任关系清单,评估迁移风险
- 域升级(NT4→AD/2016→2022):校验 BDC 同步完整性、DNS 注册有效性
- AD 架构标准化巡检:核对站点子网映射、GC 分布、林信任双向配置
- 新终端批量加域前置检测:提前验证终端能否正常寻址 DC、建立安全通道
八、工具适用系统边界(补充场景限制)
nltest (Network Location Test) 。这个命令用于测试和诊断计算机的网络连接、域控制器连接等网络相关的服务。
nltest 是一个 Windows 系统命令行工具,主要用于进行域控制器相关的测试和查询。它提供了多种功能,特别是在域、信任、登录等方面的故障排除中非常有用。以下是 nltest 命令按功能分类的表格:
nltest 命令功能分类表格
| 功能分类 | 命令参数 | 说明 |
|---|---|---|
| 域控制器查询与测试 | nltest /dsgetdc:<domain> |
查询指定域的域控制器(<domain> 为域名)。 |
nltest /dsgetdc:<domain> /force |
强制查询域控制器,不使用缓存结果。 | |
nltest /dsgetdc:<domain> /site:<site> |
查询指定站点的域控制器。 | |
| 域信任测试 | nltest /trusted_domains |
显示当前计算机的信任域列表。 |
nltest /trusted_domains /all |
显示所有信任的域及其状态。 | |
| 与域控制器通信测试 | nltest /server:<server_name> /sc_query |
查询指定服务器的域控制器的安全通道状态。 |
nltest /server:<server_name> /sc_reset |
重置与指定服务器的安全通道。 | |
| 查询与验证域控制器状态 | nltest /pdc_check |
检查本地计算机是否为主域控制器(PDC)。 |
| 域登录测试 | nltest /logon |
测试计算机的登录是否成功。 |
| 时间同步测试 | nltest /dsgetdc:<domain> /time |
获取域控制器的时间服务信息。 |
| 重置与诊断 | nltest /reset |
重置 nltest 命令的配置或状态。 |
| 显示命令帮助 | nltest /help |
显示 nltest 命令的帮助信息。 |
| 信任通道测试 | nltest /sc_query:<domain> |
查询指定域的安全通道状态。 |
| 强制重新同步时间 | nltest /sync |
强制时间同步,通常用于同步本地计算机与域控制器的时间。 |
| 网络连接测试 | nltest /netdiag |
进行网络诊断,测试当前计算机的网络连接状况。 |
| 验证域控制器发现 | nltest /dsgetdc:<domain> /verify |
验证能否成功发现域控制器。 |
| 模拟用户登录 | nltest /user:<username> /domain:<domain> |
模拟用户登录,验证指定用户名是否可以登录到指定域。 |
详细功能说明:
/dsgetdc:<domain>:此命令查询指定域的域控制器,并返回该域控制器的信息。你可以通过不同的参数如/force强制重新查询。/trusted_domains:显示当前计算机的信任域信息。这对于管理信任关系和故障排除很有帮助。/sc_query:查询与指定服务器的安全通道状态,检查是否有安全问题。/pdc_check:检查当前计算机是否是主域控制器(PDC)。主域控制器是域中用于管理身份验证和目录服务的主要服务器。/logon:用于测试当前计算机的登录状态,验证能否成功进行域登录。/time:查询域控制器的时间服务信息,常用于域控制器间的时间同步验证。/reset:重置nltest配置或当前的网络状态,通常用于恢复一些测试功能或网络状态。/sync:强制与域控制器进行时间同步。通常用于调整本地计算机和域控制器的时间差。/netdiag:执行网络诊断,帮助识别计算机与网络相关的故障。/help:显示nltest命令的帮助信息,列出所有可用选项。
示例用法:
-
查询域控制器:
bashCopy Codenltest /dsgetdc:example.com查询域
example.com的域控制器。 -
检查域控制器的时间服务信息:
bashCopy Codenltest /dsgetdc:example.com /time -
查看信任域列表:
bashCopy Codenltest /trusted_domains -
检查是否为主域控制器:
bashCopy Codenltest /pdc_check -
查询指定服务器的安全通道状态:
bashCopy Codenltest /server:server01 /sc_query -
重置与域控制器的安全通道:
bashCopy Codenltest /server:server01 /sc_reset
通过 nltest,可以帮助管理员执行域控制器查询、验证信任关系、检查安全通道状态等任务,特别有助于故障排除和网络诊断。
nltest 命令的不同版本和 Windows 操作系统版本之间的差异,通常表现为命令参数的增减、功能的不同实现以及输出结果的变化。以下是一些常见的 Windows 版本中的 nltest 命令差异表格化比较:
nltest 命令版本差异表格
| 功能/参数 | Windows Server 2008及之前版本 | Windows Server 2012 / Windows 8 | Windows Server 2016 / Windows 10 | Windows Server 2019 / Windows 10 1909及以后 |
|---|---|---|---|---|
| 基本命令 | nltest 本身可用,基本功能支持 |
支持所有基本功能 | 增加一些新的诊断工具功能 | 增强了对多域和多信任环境的支持 |
/dsgetdc:<domain> |
支持查询域控制器,能指定域并返回域控制器信息 | 增强了对域控制器发现过程中的故障排除支持,支持 /force 参数 |
增加了对多个站点和复杂网络环境下的支持 | 对跨站点、跨域的查询和控制有更强支持 |
/trusted_domains |
显示当前计算机的信任域列表 | 新增信任域检查,能列出更多信息 | 对多信任域关系的支持更好,显示更加详细的信息 | 支持跨域信任关系的显示与分析 |
/sc_query |
查询指定域的安全通道状态,适用于调试与域控制器的连接问题 | 对安全通道的诊断支持增强,能够显示更多的错误信息 | 提供更多的安全诊断信息,包括与 AD 和 Kerberos 配置的关系 | 增强跨站点和多信任关系中的安全通道状态诊断 |
/pdc_check |
检查主域控制器状态 | 增加了对PDC的状态分析功能,允许用户更清晰地判断是否为PDC | 增加了多个域控制器和PDC功能检查 | 增强了对跨域PDC状态的支持,能显示更多信息 |
/time |
获取域控制器的时间同步信息 | 支持跨站点和多个域控制器时间同步的校验 | 提供更细粒度的时间同步信息,可以进行时间校对和日志分析 | 增强了对不同网络拓扑中的时间同步状态的支持 |
/logon |
可用来模拟域登录测试 | 增强了对域登录过程的模拟分析,支持更多的登录类型 | 提供了更多关于登录过程的详细信息,包括日志和错误代码 | 支持更多登录方式,尤其在复杂身份验证环境中的使用 |
/dsgetdc:<domain> /force |
不完全支持强制查询,较为依赖缓存 | 强制查询时的执行速度提升,更加稳定 | 支持更多类型的强制查询,包括带有站点和区域的域控制器查询 | 完善了强制查询的机制,支持更高效的域控制器定位 |
/sync |
强制与域控制器时间同步 | 增强了与时间服务器的同步机制,支持多域时间同步检查 | 增加了对多个时区和区域内时间同步的支持 | 支持多域和多区域网络内的时间同步,增强了同步的稳定性 |
/reset |
重置 nltest 状态,主要用于恢复命令的初始状态 |
增强了重置的能力,可以重置某些诊断功能 | 支持更多类型的状态重置和恢复功能,尤其是在大规模网络中 | 增强了对多种网络拓扑和大规模域环境中的状态恢复功能 |
/netdiag |
不支持 nltest /netdiag,网络诊断需使用独立的工具如 netsh |
nltest /netdiag 支持对网络连接的快速诊断 |
提供了更强大的网络诊断功能,能够测试网络连接与域控制器之间的状态 | 增强了对复杂网络环境(如跨域和多站点网络)的诊断支持 |
| 命令输出格式 | 输出较为简单,通常是文本结果 | 输出更加详细,增加了状态码和错误信息 | 增强了错误信息的输出,支持JSON格式以供脚本化处理 | 输出进一步优化,支持XML和CSV格式的错误诊断输出 |
版本间差异总结:
-
Windows Server 2008及之前版本:
nltest命令较为基础,主要用于域控制器的查询、时间同步和域登录测试,功能较简单。
-
Windows Server 2012 / Windows 8:
- 增强了对域控制器的查询支持,尤其是在多域和多站点环境中,加入了
/force和其他诊断选项,提升了对跨站点和多个域环境的支持。
- 增强了对域控制器的查询支持,尤其是在多域和多站点环境中,加入了
-
Windows Server 2016 / Windows 10:
- 增强了多域、多信任关系的支持,特别是在处理安全通道、PDC、时间同步等操作时提供了更多的诊断信息。
-
Windows Server 2019及以后版本:
- 在跨域和复杂网络环境中的支持更为强大,进一步优化了命令的输出格式,增加了更多的日志信息和分析工具,适应大规模网络环境。
重要变化:
- 增强的跨域支持:后续版本(如 Windows Server 2012 及以后版本)大大增强了对多域、多站点以及跨信任关系的支持,尤其在安全通道诊断和域控制器发现等功能上。
- 时间同步和网络诊断增强:新的版本增强了对域控制器时间同步和网络诊断的功能,支持更多类型的网络环境。
- 错误输出和日志信息的改进:最新版本的
nltest输出了更详细的诊断信息,支持 JSON、XML 等格式,便于自动化脚本处理。
总结来说,nltest 命令随着 Windows 操作系统版本的更新,功能不断增强,特别是在对复杂的域结构和网络环境的支持方面。
nltest 工具的版本差异通常体现在操作系统的不同版本中,因为 Microsoft Windows 会不断更新和扩展命令行工具的功能。不同版本的 Windows 系统可能会包含不同的 nltest 命令选项。下面是一些常见 Windows 操作系统版本中 nltest 命令的功能差异。由于无法获取最新的实时数据,这里列出的是基于典型操作系统版本的信息。
| 功能/命令选项 | Windows 2000 | Windows Server 2003 | Windows Server 2008/2008 R2 | Windows Server 2012/2016/2019 | Windows 10/11 |
|---|---|---|---|---|---|
/domain_trusts |
支持 | 支持 | 支持 | 支持 | 支持 |
/dsgetdc:<域名> |
支持 | 支持 | 支持 | 支持 | 支持 |
/validate |
支持 | 支持 | 支持 | 支持 | |
/getdomain |
|||||
/server:<域控制器> |
支持 | 支持 | 支持 | 支持 | 支持 |
/query |
支持 | 支持 | 支持 | 支持 | 支持 |
/netbios |
支持 | 支持 | 支持 | 支持 | 支持 |
/sc_query |
支持 | ||||
/ping |
支持 | 支持 | 支持 | 支持 | 支持 |
/dns |
支持 | 支持 | 支持 | 支持 | 支持 |
/user:<用户名> |
支持 | 支持 | 支持 | ||
/force |
支持 | 支持 | 支持 | 支持 | |
/time |
支持 | 支持 | 支持 | 支持 | |
/log |
|||||
/netlogon |
支持 | 支持 | 支持 | 支持 | 支持 |
/domain_member |
支持 | 支持 | 支持 |
说明:
-
Windows 2000:
nltest在 Windows 2000 中提供了基础的域验证、域控制器查询和信任关系检查功能。- 不支持高级选项,如
/validate、/user。
-
Windows Server 2003:
- 引入了更多域控制器相关的功能,包括信任验证和强制同步选项。
- 依然没有对一些高级功能(如获取 SID)提供支持。
-
Windows Server 2008/2008 R2:
- 增强了与 Active Directory 的集成,支持更多用于诊断和故障排除的选项,如
/validate、/user。 - 没有显著的新命令选项。
- 增强了与 Active Directory 的集成,支持更多用于诊断和故障排除的选项,如
-
Windows Server 2012/2016/2019:
- 继续增强了命令行工具的功能,特别是在混合环境和云基础设施中的支持。
nltest命令功能基本保持一致,重点是兼容性和网络环境的管理。
-
Windows 10/11:
nltest在这些版本中依然支持所有基本功能,且提供了一些新的功能选项,特别是在支持不同工作组和域配置的环境中。- 特别针对较小的 IT 环境或个人使用者,增强了命令行功能的可用性。
此表概述了每个版本中 nltest 的常见支持功能。如果您需要进一步了解具体版本或命令选项的详细信息,可以参考每个版本的官方文档。
nltest 是一个 Windows 命令行工具,用于测试和管理 Windows 域的信任和连接状态。以下是一些常用的 nltest 命令示例:
1. 查询域信任关系
nltest /domain_trusts
该命令显示当前计算机与其域和其他信任域之间的信任关系。
2. 验证域控制器
nltest /server:<DomainControllerName> /sc_verify:<DomainName>
验证指定的域控制器是否可以访问指定的域。
示例:
nltest /server:DC01 /sc_verify:example.com
3. 查询当前域的域控制器
nltest /dclist:<DomainName>
列出指定域的所有域控制器。
示例:
nltest /dclist:example.com
4. 获取当前计算机的域信息
nltest /domain
该命令返回当前计算机所属的域信息。
5. 显示计算机的安全通道状态
nltest /sc_query:<DomainName>
查询计算机与指定域的安全通道状态。
示例:
nltest /sc_query:example.com
6. 检查域信任的详细信息
nltest /trusted_domains
列出当前信任的所有域。
nltest 是一个强大的工具,适用于域管理和故障排除,以上命令可以帮助你获取域控制器的信息、验证信任关系以及查询安全通道状态等。
7. 列出所有信任的域
nltest /trustdoms
此命令列出当前计算机所在域信任的所有域。
8. 验证对指定域控制器的连接
nltest /server:<DomainControllerName> /sc_verify:<DomainName>
此命令验证当前计算机是否可以与指定的域控制器建立安全通道。
示例:
nltest /server:DC02 /sc_verify:example.com
9. 重新启动域控制器的安全通道
nltest /sc_reset:<DomainName>
如果安全通道出现问题,可以使用此命令重置与指定域的安全通道。
示例:
nltest /sc_reset:example.com
10. 查询计算机的安全标识符 (SID)
nltest /sid
此命令显示当前计算机的 SID 信息。
11. 显示当前计算机的 FQDN
nltest /fqdn
返回当前计算机的完全合格域名(FQDN)。
12. 查询站点信息
nltest /site
此命令显示计算机所属的 Active Directory 站点。
13. 检查 Netlogon 服务的状态
nltest /dbflag:0x2080ffff
通过设置 Netlogon 的调试标志,可以帮助诊断域相关问题。
14. 查询指定计算机的安全通道状态
nltest /sc_query:<DomainName> /server:<ComputerName>
此命令检查特定计算机与指定域之间的安全通道。
示例:
nltest /sc_query:example.com /server:ComputerName
15. 获取当前计算机的角色
nltest /roles
显示当前计算机在 Active Directory 中的角色(如主域控制器、备份域控制器等)。
nltest 提供了丰富的选项,用于管理和排查 Active Directory 和域环境中的问题。通过以上命令,你可以有效地获取和管理域信息,确保网络环境的正常运行。
16. 获取域控制器的角色信息
nltest /role:<RoleName>
此命令用于获取特定角色的信息,比如主域控制器或全局编录。
示例:
nltest /role:DC
17. 强制更新组策略
nltest /policy
这个命令用于强制计算机更新其组策略设置。
18. 检查 DNS 设置
nltest /dns
此命令检查当前计算机的 DNS 配置是否正确。
19. 查询 Active Directory 域的安全设置
nltest /showtrust
显示当前域的信任关系及相关安全设置。
20. 获取当前计算机的 NetBIOS 名称
nltest /netbios
此命令显示当前计算机的 NetBIOS 名称,有助于网络故障排除。
21. 验证一个用户的 SID
nltest /user:<Username>
此命令验证特定用户的 SID 信息。
示例:
nltest /user:username
22. 测试与域控制器的连接
nltest /server:<DomainControllerName> /sc_query
检查当前计算机与指定域控制器之间的连接。
23. 获取当前计算机的域信息和 SID
nltest /domain /sid
该命令返回当前计算机的域名和对应的 SID 信息。
24. 查询当前域的全部组
nltest /groups
列出当前域中的所有组。
25. 检查信任的详细信息
nltest /trusted_domains /v
提供详细的信任域信息,包括类型和状态。
26. 查询 Active Directory 的域名
nltest /domaindns
返回当前计算机的 DNS 域名信息。
27. 检查安全通道的详细信息
nltest /sc_query:<DomainName> /server:<DomainControllerName>
获取与指定域控制器的安全通道的详细状态。
28. 获取当前计算机的操作系统版本
nltest /version
此命令返回当前计算机的操作系统版本信息,有助于版本兼容性排查。
29. 通过 IP 地址查询域控制器
nltest /server:<IPAddress>
使用 IP 地址查询指定域控制器的信息。
30. 查询计算机的完整域名
nltest /fqdn
显示计算机的完整域名,适用于网络配置和 DNS 故障排除。
以上命令扩展了 nltest 的使用范围,提供了更多的功能,帮助你在 Active Directory 环境中进行管理和故障排除。通过这些命令,你可以深入了解域的状态和配置,确保系统的稳定性和安全性。
31. 列出所有信任的域
nltest /trusted_domains
该命令会列出所有信任的域信息,帮助你了解域之间的信任关系。
32. 检查与特定域的信任状态
nltest /domain_trust:<DomainName>
验证当前域与指定域的信任关系。
33. 列出指定用户的组成员身份
nltest /user:<Username> /groups
此命令显示特定用户所属的所有组,有助于权限管理。
34. 查看域控制器的角色持有者
nltest /role:All
获取所有角色的持有者信息,帮助确认角色分配是否正常。
35. 测试 Kerberos 认证
nltest /kccexport
导出 Kerberos 票证的详细信息,适用于 Kerberos 认证问题排查。
36. 查询最近的域控制器
nltest /dsgetdc:<DomainName>
查找指定域的最近域控制器,帮助识别网络中可用的域控制器。
37. 查看组策略处理的详细信息
nltest /gpresult
获取当前计算机的组策略应用情况,帮助确认策略是否正确应用。
38. 强制重新建立安全通道
nltest /sc_reset:<DomainName>
重置与指定域的安全通道,适用于安全通道问题的解决。
39. 检查域控制器的 DNS 记录
nltest /dnsgetdc:<DomainName>
查询指定域的域控制器的 DNS 记录,确保 DNS 配置正确。
40. 验证 LDAP 连接
nltest /ldap
测试当前计算机到域控制器的 LDAP 连接,适用于 LDAP 认证问题的排查。
41. 获取域的 SID 及其版本信息
nltest /domain_sid
返回当前域的 SID 及其版本信息,帮助管理和迁移域。
42. 查询本地计算机的域角色
nltest /role:<LocalMachine>
获取本地计算机的域角色信息,确认其在域中的作用。
43. 监测和记录域控制器的状态
nltest /sc_check:<DomainControllerName>
检查指定域控制器的状态并记录结果,适合于定期监测。
44. 查询当前计算机的 Netlogon 状态
nltest /netlogon
显示 Netlogon 服务的状态,帮助解决登录和认证问题。
45. 列出所有可用的命令和选项
nltest /?
显示所有可用的 nltest 命令和选项,快速查找所需功能。
这些 nltest 命令可以帮助你更全面地管理和排查 Windows 域环境中的问题。通过这些工具,你能够有效监控域控制器的健康状态,验证网络配置,处理组策略问题,确保整体环境的稳定性和安全性。


浙公网安备 33010602011771号