nltest (Network Location Test)nltest.exe 域测试工具,Windows Netlogon 测试诊断命令行工具; C:\Windows\SysWOW64\nltest.exe(32 位)System32\nltest.exe(64 位)域控制器发现、Netlogon 安全通道测试、BDC 复制、域信任、站点查询、DNS 域注册诊断;

Nltest | Microsoft Learn

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 协议。

核心业务模型:

  1. 安全通道(Secure Channel):域成员机器与域控之间通过 Netlogon 建立加密安全通道,使用机器账户密码会话密钥,用于身份认证、策略下发、BDC 数据库复制。
  2. DC 定位(DC Locator):通过 DNS SRV 记录 + NetBIOS 广播查找域控制器、AD 站点;
  3. Netlogon RPC:RPC 接口与域控通信,执行查询、验证、强制同步、信任关系枚举;
  4. 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 部分域信息查询封装

注册表关键存储

  1. HKLM\SYSTEM\CurrentControlSet\Services\Netlogon:Netlogon 服务配置,安全通道参数、DC 缓存、站点配置
  2. HKLM\SECURITY\Policy\Secrets\$MACHINE.ACC:机器账户密码(加密存储),用于建立域安全通道

依赖关系

硬依赖

  1. Netlogon 服务必须运行:服务停止,nltest 绝大多数命令(安全通道、DC 查询、BDC、信任测试)直接失败报错。
  2. RPC 子系统 (rpcrt4.dll):Netlogon 基于 MS‑RPC,RPC 不可用则全部 RPC 类子命令失效。
  3. DNS 客户端正常工作:DC Locator 依赖 DNS SRV 记录;DNS 故障无法定位域控。
  4. 网络连通域控:TCP 135 + Netlogon 动态 RPC 端口;DNS 53。

域成员机器额外依赖

  1. 本机已经成功加入 Active Directory 域;机器账户有效;安全通道建立正常。
  2. 权限:多数子命令需要管理员权限;普通用户仅部分只读查询可用。

可选依赖

  1. NetBIOS:DC Locator 降级时使用 NetBIOS 广播(旧兼容,现代 AD 优先 DNS)。
  2. WINS 服务器:NT4 遗留场景。

不依赖

  1. ❌不依赖 AD‑DS 数据库本地;nltest 是客户端诊断工具,不需要本机是域控。
  2. ❌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、站点名

逻辑链路

  1. 启动初始化 nltest.exe 启动,解析命令行参数(截图中全部 /? 展示的参数:/SERVER/QUERY/SC_QUERY/BDC_QUERY 等);加载netlogon.dll
  2. 分支执行两类命令
  • 本地查询:读取本机 Netlogon 注册表、缓存;
  • RPC 远程命令:通过本地 Netlogon 服务与域控制器 RPC 交互。
  1. DC Locator 逻辑 优先 DNS SRV 记录;DNS 失败降级 NetBIOS 广播;返回匹配当前 AD 站点的域控制器。
  2. 安全通道操作逻辑 Netlogon 服务使用本地加密存储的机器账户密码,和域控协商会话密钥,建立加密 Netlogon 会话;nltest 只是触发测试,不持有明文机器密码
  3. 输出逻辑 把 RPC 返回的结构化数据,格式化打印控制台 stdout;可重定向输出到文件。
  4. 遗留 BDC 逻辑说明

/REPL /SYNC /PDC_REPL /LIST_DELTAS 全部是 NT4 BDC 时代接口。 Windows 2003 以后 AD 抛弃 BDC 模型;AD 使用 NTDS ISM 多主复制,nltest 不能触发 AD 复制;AD 复制使用 repadmin。

边界约束

  1. 环境边界
  • 工作组机器:安全通道相关命令全部报错;只能执行少量 DNS / 站点查询;
  • 域成员工作站:可以测试安全通道、查找 DC;不能执行 BDC 同步
  • 域控制器:完整支持全部遗留 BDC 参数,但 AD 环境 BDC 复制 API 无实际效果。
  1. 权限边界
  • 安全通道查询、重置、BDC 操作、信任查询,必须管理员权限
  • 普通域用户仅可以执行部分只读 DC 列表查询。
  1. 版本 & 兼容边界
  • NT4 域:BDC 复制参数完全生效;
  • Active Directory 域 (2003‑2025):BDC 相关参数为API 兼容占位;AD 复制使用 repadmin.exe,不要使用 nltest 做 AD 复制。
  1. 服务边界 Netlogon 服务停止:nltest /sc_query 直接失败;报错:Could not get netlogon service state
  2. 协议 & 端口边界 Netlogon RPC 依赖:DNS UDP53,TCP135 + RPC 动态端口;防火墙阻断会导致 nltest 命令超时失败。
  3. 32/64 位边界 SysWOW64 下 32 位 nltest.exe,参数、行为和 System32 的 64 位版本完全一致;只是进程位数差异,输出帮助文本一模一样,截图就是 32 位版本。
  4. 功能边界区分(极易混淆)

    工具 用途
    nltest.exe Netlogon 安全通道、DC 定位、NT4‑BDC 诊断;不能操作 AD 对象复制
    repadmin.exe Active Directory NTDS 多主复制、域控之间复制状态诊断;AD 域标准复制工具
  5. 安全边界 nltest 仅做诊断,不会修改 AD 数据库;部分参数如/SC_RESET会重置本机机器账户安全通道,会改变本机与域控之间的会话密钥。
  6. 参数边界(截图参数说明) 截图中可见大量遗留参数:/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,微软登录服务器测试工具)完整拆解・解构

基础定位

全称:Microsoft Logon Server Test Utility(俗称 Network Location Test)
 
原生路径:
 
C:\Windows\System32\nltest.exe(64 位系统)
 
C:\Windows\SysWOW64\nltest.exe(32 位兼容版本)

核心本质

nltest.exeNetlogon 协议配套命令行诊断前端程序自身不实现底层网络认证逻辑;所有能力通过调用 Win32 DCLocator API、Netlogon RPC 接口,封装 Netlogon 远程协议(NRPC),面向 AD 域、NT4 域提供排错能力。
历史溯源:最早出自 Windows NT4 Resource Kit,Windows Vista/Server2008 起内置进系统。
核心能力清单
  1. DCLocator:定位域控制器 DC、GC 全局编录、KDC、时间服务器
  2. 安全通道(Secure Channel)查询 / 重置(机器账户域信任)
  3. 域信任关系测试、跨域通道验证
  4. 控制 Netlogon 调试日志开关
  5. 查询 DNS SRV 域控记录、站点信息
  6. 兼容 NT4 BDC 数据库同步、远程服务器关机(遗留功能)
运行前提:多数高危操作必须管理员权限;依赖本机 Netlogon 服务正常运行。

一、底层原理拆解

1. 整体调用模型

plaintext
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(安全通道)

域内 Windows 客户端与 DC 之间建立加密 RPC 通道,使用机器账户密码协商会话密钥,用于:
  • NTLM 传递认证
  • 域策略下发、登录验证
  • 域间信任通信
⚠️关键点:Kerberos 认证不依赖安全通道;但 NTLM、机器账户密码更新、Netlogon RPC 操作必须依靠安全通道。
 
nltest /sc_query / /sc_reset 就是直接操作这条通道。

③ NRPC(Netlogon Remote Protocol)

nltest 跨机器通信的传输协议,基于 MS-RPCE 封装,典型端口:
  • TCP 445(SMB 传输 NRPC)
  • RPC 动态端口(默认 49152~65535)

3. 重要概念区分

  • nltest.exe = 控制台封装工具
  • netlogon.dll = 用户态 API 层
  • Netlogon 服务(% SystemRoot%\System32\netlogon.dll,svchost 加载)= 内核交互、RPC 服务主体

二、依赖文件清单(Windows 平台)

🔹 直接加载 DLL(nltest.exe 进程内)

  1. netlogon.dll核心依赖,提供 DsGetDcName、I_NetLogonControl 等全部 Netlogon API
  2. rpcrt4.dll:RPC 运行时库,本地 LPC、远程 NRPC 通信
  3. dnsapi.dll:DNS 解析,查询 SRV/A 记录(DCLocator DNS 模式)
  4. advapi32.dll:安全上下文、注册表读写(读取 Netlogon 配置)
  5. kernel32.dll / ntdll.dll:基础进程 API
  6. ws2_32.dll:Windows 套接字网络支持

🔹 系统服务依赖(硬性前置条件)

  1. Netlogon(Net Logon)
     
    宿主:svchost.exe -k netsvcs -p
     
    绝对核心;服务停止后绝大多数 nltest 指令返回 1722 RPC_S_SERVER_UNAVAILABLE
  2. Dnscache(DNS 客户端缓存)
     
    宿主:svchost.exe -k netsvcs -p
     
    DC 定位 DNS 解析依赖
  3. RpcSs(RPC 端点映射器,svchost -k rpcss)
     
    Windows 所有 RPC 通信基础,不可缺失
  4. Workstation(LanmanWorkstation)
     
    SMB 传输 NRPC、访问远程服务器共享通道依赖

🔹 内核层依赖

  1. tcpip.sys TCP/IP 协议栈
  2. afd.sys Winsock 套接字驱动
  3. mrxsmb.sys SMB 协议驱动(NRPC over SMB 通信)

🔹 关键注册表路径

reg
# 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 开启详细调试日志。

三、依赖关系梳理

上游调用链路

用户执行 nltest.exe → 加载 netlogon.dll → 通过 LPC 调用本地 Netlogon 服务 → Netlogon 执行 DNS 查询 / 广播 → 建立 NRPC 连接到远程 DC

横向依赖约束

  1. 防火墙端口约束
     
    DC 定位 + Netlogon 通信必须放行:
     
    UDP53 (DNS)、TCP/UDP389 (LDAP)、TCP445 (SMB/NRPC)、RPC 动态端口
  2. DNS 正确性约束
     
    AD 环境下客户端 DNS 必须指向承载_msdcs区域的域控 DNS 服务器,否则 DCLocator 查询失败。
  3. 时间同步约束
     
    安全通道协商、Kerberos 间接依赖系统时间与 DC 偏差≤5 分钟。

下游对外输出

nltest 仅控制台文本输出;无图形界面;输出数据全部来源于 Netlogon 服务返回的 RPC 结果。

四、完整逻辑链路(典型场景)

链路 1:查询域控制器 nltest /dsgetdc:contoso.com /force

plaintext
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

plaintext
1. nltest调用 I_NetLogonControl2 API
2. 本地Netlogon服务读取当前机器账户安全通道状态
3. 通过NRPC RPC向目标DC发起通道验证
4. DC校验机器账户密码会话密钥
5. 返回通道状态(可信/失效),nltest打印结果

链路 3:重置安全通道 nltest /sc_reset:contoso.com

plaintext
1. 通知Netlogon销毁现有安全通道
2. 使用本机机器账户凭据重新与DC协商建立加密通道
3. 协商失败常见原因:机器账户密码与AD数据库不同步(域脱域经典故障)

链路 4:开启 Netlogon 调试日志

plaintext
nltest /dbflag:0x2000FFFF
↓
修改注册表 HKLM\...\Netlogon\Parameters\DBFlag
↓
Netlogon服务实时读取标志,开启详细日志写入 %windir%\debug\netlogon.log

链路 5:典型故障断链场景

  1. Netlogon 服务停止
     
    现象:所有 RPC 类命令返回 1722 RPC服务器不可用
     
    解决:net start netlogon
  2. DNS 配置错误,无法解析 SRV 记录
     
    现象:/dsgetdc 返回错误 1355(找不到域控制器)
  3. 防火墙拦截 TCP445/RPC 动态端口
     
    现象:DC 能被 DNS 解析,但是安全通道测试超时失败
  4. 机器账户密码失效(安全通道破裂)
     
    现象:/sc_query 返回错误 1789,工作站无法登录域,可使用/sc_reset尝试重建
  5. 普通用户无管理员权限
     
    现象:部分参数执行返回访问拒绝(安全通道重置、修改调试标志)

五、配套运维命令链(标准排错流水线)

powershell
# 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

六、运维边界、安全风险与高频误区

高频误区

❌ 误区 1:nltest.exe 直接与 DC 建立网络连接
 
✅ 事实:网络通信全部由Netlogon 服务完成,nltest 只是调用 API 的前端。
❌ 误区 2:Kerberos 登录依赖安全通道
 
✅ 事实:Kerberos 使用 KDC 票据,不依赖 Secure Channel;NTLM、机器账户管理才依赖安全通道。
❌ 误区 3:nltest 仅用于 AD
 
✅ 事实:向下兼容 NT4 域(BDC 同步、mailslot 广播模式)。

安全风险要点

  1. 内网渗透信息搜集
     
    攻击者可利用 nltest 枚举域控列表、信任域、站点信息,是域内信息收集常用命令;EDR 可监控进程创建事件 4688 告警异常调用。
  2. /sc_reset 滥用风险
     
    恶意管理员可远程强制重置机器安全通道,导致工作站脱离域、无法登录。
  3. Netlogon 协议历史漏洞(CVE-2020-1472 Zerologon)
     
    漏洞底层就是 Netlogon NRPC 协议,nltest 可作为漏洞验证辅助工具。

分层排障思路(域登录故障标准流程)

  1. 检查 Netlogon 服务运行状态
  2. 使用/dsgetdc验证 DC 定位(区分 DNS 故障 / 网络故障)
  3. /sc_query 判断安全通道是否完好
  4. 开启 Netlogon 日志深入定位协商失败原因

七、极简核心总结

  1. nltest.exe = Netlogon 服务命令行前端工具,自身不含底层网络认证代码,依赖netlogon.dll调用系统 API;
  2. 两大核心场景:DC 定位(DCLocator)安全通道(Secure Channel)管理;底层依靠 NRPC Netlogon 远程协议;
  3. 强依赖 Netlogon 系统服务(netsvcs 分组 svchost 承载),服务停止工具基本失效;
  4. 现代 AD 依靠 DNS SRV 记录查找域控;保留 NT4 兼容的 NetBIOS/Mailslot 广播机制;
  5. 域环境排错核心工具,同时也是内网渗透信息收集常用载体,建议纳入审计监控;
  6. 安全通道破裂(机器账户密码不同步)是企业域最常见故障,/sc_reset是标准修复手段。

nltest.exe 完整参数手册解构(基于截图中文帮助界面)

基础总览

程序:nltest.exe
 
全称:Network Logon Server Test Utility
 
载体路径:C:\Windows\System32\nltest.exe
 
本质:Netlogon RPC 协议的命令行封装前端
核心运行模型回顾
plaintext
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 数据库文件

关键研判说明

  1. NT4 模型:PDC 为唯一可写 SAM 源,BDC 只读副本,复制由 Netlogon RPC 完成
  2. AD 模型:废除 PDC/BDC 主从,全部域控多主 NTDS 复制,由ISM(Intersite Messaging)+DS‑RPC完成,和 Netlogon 无关;
  3. AD 环境禁止使用nltest做复制排查;复制状态诊断标准工具:repadmin.exe
现代 AD 提示:Windows 2003 + 域移除 BDC 概念,这类参数仅兼容旧 NT4,域环境基本不再使用。

2. 安全通道 Secure Channel 核心组(企业域排错最高频)

安全通道 = 客户端机器账户与 DC 之间加密 NRPC 会话,依靠机器账户密码协商密钥
参数 底层行为
/SC_QUERY:<DomainName> 查询本机 / 远端服务器与目标域之间安全通道状态
 
API:I_NetLogonControl2 查询通道信息
/SC_RESET:<DomainName>[\DcName] 重建安全通道
 
销毁旧通道,重新向 DC 协商建立加密会话;修复「机器账户密码不同步」域脱域故障
/SC_VERIFY:<DomainName> 验证现有安全通道有效性,发送测试 RPC 报文校验链路与密钥
/SC_CHANGE_PWD:<DomainName> 修改本机存储的机器账户密码,同步更新 DC 内计算机对象密码
典型故障场景:/SC_QUERY 返回 1789 = 安全通道破裂。

3. DC 定位 DCLocator 系列(DsGetDcName API 族,AD 核心)

底层 API: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
 
标志生效后 Netlogon 写入%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 内部)

  1. netlogon.dll 核心依赖:导出全部 Netlogon 客户端 API(DsGetDcName、I_NetLogonControl2 等)
  2. rpcrt4.dll:RPC 运行库,本地 LPC 通信 + 远程 NRPC 协议封装
  3. dnsapi.dll:DNS 解析,所有 DC 定位、DNS 相关参数依赖
  4. advapi32.dll:注册表读写(/DBFLAG 修改注册表)、安全上下文
  5. ws2_32.dll:TCP/UDP 套接字
  6. kernel32.dllntdll.dll

必须运行的系统服务

  1. Netlogon(Net Logon)
     
    宿主:svchost.exe -k netsvcs -p
    几乎所有参数执行的后端主体;服务停止,绝大部分命令返回 1722 RPC_S_SERVER_UNAVAILABLE
  2. RpcSs(RPC Endpoint Mapper)svchost -k rpcss
  3. Dnscache DNS 客户端缓存 svchost -k netsvcs -p
  4. LanmanWorkstation(工作站服务,SMB 承载 NRPC)

内核依赖

tcpip.sysafd.sysmrxsmb.sys(SMB 传输 NRPC 流量)

关键注册表路径

reg
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

plaintext
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

plaintext
1. 参数解析识别DsGetDcName调用
2. netlogon.dll通知Netlogon服务,/force要求清空本地DC缓存
3. Netlogon调用dnsapi.dll查询DNS SRV记录
4. 尝试连通候选域控制器,校验可用性
5. DC信息返回nltest打印

链路示例 3:nltest /dbflag:0x2000FFFF

plaintext
1. nltest调用advapi32写入注册表DBFlag键值
2. Netlogon服务实时监控该注册表项变更
3. 立刻启用详细日志,写入%windir%\debug\netlogon.log

四、典型故障断链场景(参数执行失败)

  1. Netlogon 服务停止
     
    所有 RPC 类参数报错:1722 RPC 服务器不可用
     
    ✅修复:net start netlogon
  2. /dsgetdc 返回错误 1355(找不到域控制器)
     
    根因:客户端 DNS 未指向 AD DNS 服务器,无法解析_msdcs SRV 记录
  3. /sc_reset 重置安全通道失败
     
    根因:本机与 DC 时间偏差过大、防火墙拦截 TCP445/RPC 动态端口、机器账户在 AD 中被禁用 / 删除
  4. /DSREGDNS 执行失败
     
    权限不足(需要管理员)或本机网卡无法联系 DNS 服务器
  5. 普通用户执行部分参数提示拒绝访问
     
    /SC_RESET/DBFLAG/DSREGDNS 必须管理员权限令牌

五、运维配套标准命令流水线(基于截图参数)

powershell
# 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

六、安全边界与攻防要点

  1. 信息搜集载体
     
    攻击者可以利用 nltest /dclist/domain_trusts 枚举域控、信任拓扑,属于内网渗透常用工具;建议 EDR 监控 4688 进程创建日志,告警异常 nltest 执行。
  2. 历史漏洞关联
     
    底层协议 MS-NRPC 存在 Zerologon (CVE-2020-1472),nltest 可以辅助验证 Netlogon 协议连通性。
  3. 滥用风险
     
    恶意管理员执行/sc_reset会强制断开机器域信任,批量终端断网脱域。

七、极简核心总结

  1. nltest.exe 只是命令行解析外壳,所有业务逻辑转发至netlogon.dll与系统 Netlogon 服务;
  2. 参数分为四大板块:NT4 BDC 同步(淘汰)、安全通道管理、DC 定位 DCLocator、AD DNS / 信任运维;
  3. /SC_* 系列是企业域最常用排错指令,解决机器账户安全通道故障;
  4. /DSGETDC 底层封装 Windows 标准 DsGetDcName DC 定位 API,依靠 DNS SRV 记录查找域控;
  5. 所有跨主机通信基于 NRPC Netlogon 远程协议,依赖 TCP445/RPC 动态端口;
  6. /DBFLAG 通过注册表开关 Netlogon 日志,是域登录疑难问题核心排查手段。

nltest.exe 工具完整解读(图中参数翻译 + 功能分类)

一、工具基础介绍

nltest.exe(Network Location Test)是 Windows 内置AD 域诊断工具,存放在 C:\Windows\System32,无需额外安装,域管理员核心排错工具,核心用途:
  1. 检测域安全通道(机器域信任)状态
  2. 查询 / 定位域控制器 (DC)、全局编录 (GC)、KDC
  3. 验证域间信任关系、复制同步状态
  4. 排查登录、DNS 解析、站点、复制日志问题
  5. 远程 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:<域名> 配套筛选标记(逗号分隔叠加)

plaintext
/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:取消正在执行的远程关机操作

三、高频实战示例(管理员常用命令)

  1. 检查本机域安全通道(最常用)
powershell
nltest /sc_query:contoso.com
 
正常输出 Connection Status = 0;报错5代表信任断裂,需重置通道。
  1. 重置失效的机器域信任
powershell
nltest /sc_reset:contoso.com
 
  1. 列出域内所有可写域控制器
powershell
nltest /dsgetdc:contoso.com /writable
 
  1. 查看所有域信任关系详情
powershell
nltest /domain_trusts /v
 
  1. 强制 DC 重新注册 DNS 记录(DNS 缺失排错)
powershell
nltest /dsregdns
 
  1. 查询当前登录使用的域控制器
powershell
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 开启全量日志

五、注意事项 ⚠️

  1. 重置安全通道(/sc_reset)仅修复机器账户信任,不能修复用户密码、域管理员权限问题;
  2. /shutdown 远程关机需要目标 DC 本地管理员权限;
  3. /dsgetdc/force会触发 DNS 查询,网络不通时会超时;
  4. Windows 10/11 专业版、所有 Server 系统自带该工具,家庭版无 nltest;
  5. 所有修改类参数(重置密码、同步、关机)必须管理员身份运行。

 

nltest.exe 完整应用场景分类(AD 域运维 / 排错全覆盖)

一、域机器信任通道故障(最高频场景)

场景 1:工作站脱域报错「此工作站和主域间的信任关系失败」

  • 现象:域账户无法登录、提示密码错误、事件 ID 5722
  • 对应命令:
    powershell
    # 检测通道状态
    nltest /sc_query:contoso.com
    # 重建机器与域的信任通道
    nltest /sc_reset:contoso.com

场景 2:服务器长时间离线,机器账户密码过期失效

AD 默认每 30 天自动更新机器账户密码,断网超期后通道断裂,用/sc_change_pwd强制更新机器账户密钥。

场景 3:验证跨站点、跨林服务器安全通道连通性

远程检测分支机构 DC 与根域的信任链路:
powershell
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、时间服务器寻址异常

企业多站点环境,验证客户端能否识别 GC(Exchange、通用账户查询依赖 GC):
powershell
# 仅查询全局编录服务器
nltest /dsgetdc:contoso.com /gc
# 仅查询Kerberos认证服务器KDC
nltest /dsgetdc:contoso.com /kdc

场景 3:DC DNS 记录丢失、客户端无法解析域控

DC 开机未自动注册 SRV/A 记录,导致终端无法加入域:
powershell
# 让DC重新向DNS服务器注册所有AD相关记录
nltest /dsregdns
# 校验DNS记录更新状态
nltest /dsquerydns

场景 4:区分可写 DC 与只读域控 RODC

分支机构 RODC 仅缓存本地用户,查询时过滤只读 DC:
powershell
nltest /dsgetdc:contoso.com /writable

三、AD 站点、林信任、跨域访问故障

场景 1:客户端异常连接异地 DC,跨站点流量暴涨

查询本机归属 AD 站点、匹配 IP 子网站点映射:
powershell
# 查看本机所属AD站点
nltest /dsgetsite
# 通过服务器IP反查对应站点
nltest /dsaddresstosite:192.168.10.20

场景 2:跨域 / 跨林资源访问失败、账户无法跨域登录

  1. 查看当前所有域、林信任关系(单向 / 双向、林信任、外部信任)
    powershell
    nltest /domain_trusts /v
  2. 测试目标用户能否通过信任域完成身份解析
    powershell
    nltest /whowill:child.contoso.com admin@contoso.com
    nltest /finduser:john@external.com

场景 3:多林环境林信任配置校验

读取林信任加密、路由配置信息:
powershell
nltest /lsaqueryfti:trustedforest.com

四、AD 复制、Netlogon 服务同步排错(兼容 NT4 BDC + 现代 AD)

场景 1:旧版 NT4 BDC 与 PDC 复制不同步、账户数据不一致

  • /SYNC:强制全量同步 BDC 数据库
  • /REPL:增量部分同步,适合小批量变更
  • /PDC_REPL:从 PDC 主控同步用户账户数据库 UAS 变更

场景 2:读取 AD 变更日志排查复制冲突

导出变更日志文件,查看对象新增、修改、删除记录:
powershell
nltest /list_deltas:C:\ADlog\delta.log

场景 3:Netlogon 服务异常、未监听网络传输

刷新 Netlogon 传输通道,通知服务重载网络配置:
powershell
nltest /transport_notify

五、登录审计、账户信息、调试日志抓取

场景 1:统计服务器累计域登录失败次数,排查暴力破解

powershell
nltest /logon_query

场景 2:快速查询 DC 上指定域用户基础信息

powershell
nltest /SERVER:DC01 /USER:zhangsan

场景 3:开启 Netlogon 详细调试日志,深度定位登录 / 信任报错

通过十六进制标志开启全量日志,用于微软工程师深度排错:
powershell
nltest /dbflag:0x2000ffff

六、域服务器远程运维操作

场景 1:远程关闭 / 重启域控制器(维护窗口操作)

powershell
# 30秒延迟关机,标注维护原因
nltest /SERVER:DC02 /SHUTDOWN:AD服务器维护 30
# 中止已下发的关机指令
nltest /SERVER:DC02 /SHUTDOWN_ABORT

七、AD 迁移、升级、环境巡检场景

  1. 域迁移前巡检:批量导出所有 DC、站点、信任关系清单,评估迁移风险
  2. 域升级(NT4→AD/2016→2022):校验 BDC 同步完整性、DNS 注册有效性
  3. AD 架构标准化巡检:核对站点子网映射、GC 分布、林信任双向配置
  4. 新终端批量加域前置检测:提前验证终端能否正常寻址 DC、建立安全通道

八、工具适用系统边界(补充场景限制)

✅ 支持系统:Windows Server 2008~2025、Win10/11 专业版 / 企业版
 
❌ 不支持:Windows 家庭版(无 AD 组件,不含 nltest.exe)
 
⚠️ 权限要求:修改类操作(重置通道、关机、开启调试日志)必须管理员权限运行

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> 模拟用户登录,验证指定用户名是否可以登录到指定域。

详细功能说明:

  1. /dsgetdc:<domain>:此命令查询指定域的域控制器,并返回该域控制器的信息。你可以通过不同的参数如 /force 强制重新查询。
  2. /trusted_domains:显示当前计算机的信任域信息。这对于管理信任关系和故障排除很有帮助。
  3. /sc_query:查询与指定服务器的安全通道状态,检查是否有安全问题。
  4. /pdc_check:检查当前计算机是否是主域控制器(PDC)。主域控制器是域中用于管理身份验证和目录服务的主要服务器。
  5. /logon:用于测试当前计算机的登录状态,验证能否成功进行域登录。
  6. /time:查询域控制器的时间服务信息,常用于域控制器间的时间同步验证。
  7. /reset:重置 nltest 配置或当前的网络状态,通常用于恢复一些测试功能或网络状态。
  8. /sync:强制与域控制器进行时间同步。通常用于调整本地计算机和域控制器的时间差。
  9. /netdiag:执行网络诊断,帮助识别计算机与网络相关的故障。
  10. /help:显示 nltest 命令的帮助信息,列出所有可用选项。

示例用法:

  • 查询域控制器

    bashCopy Code
    nltest /dsgetdc:example.com

    查询域 example.com 的域控制器。

  • 检查域控制器的时间服务信息

    bashCopy Code
    nltest /dsgetdc:example.com /time
  • 查看信任域列表

    bashCopy Code
    nltest /trusted_domains
  • 检查是否为主域控制器

    bashCopy Code
    nltest /pdc_check
  • 查询指定服务器的安全通道状态

    bashCopy Code
    nltest /server:server01 /sc_query
  • 重置与域控制器的安全通道

    bashCopy Code
    nltest /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格式的错误诊断输出

版本间差异总结:

  1. Windows Server 2008及之前版本

    • nltest 命令较为基础,主要用于域控制器的查询、时间同步和域登录测试,功能较简单。
  2. Windows Server 2012 / Windows 8

    • 增强了对域控制器的查询支持,尤其是在多域和多站点环境中,加入了 /force 和其他诊断选项,提升了对跨站点和多个域环境的支持。
  3. Windows Server 2016 / Windows 10

    • 增强了多域、多信任关系的支持,特别是在处理安全通道、PDC、时间同步等操作时提供了更多的诊断信息。
  4. 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     支持 支持 支持

说明:

  1. Windows 2000:

    • nltest 在 Windows 2000 中提供了基础的域验证、域控制器查询和信任关系检查功能。
    • 不支持高级选项,如 /validate/user
  2. Windows Server 2003:

    • 引入了更多域控制器相关的功能,包括信任验证和强制同步选项。
    • 依然没有对一些高级功能(如获取 SID)提供支持。
  3. Windows Server 2008/2008 R2:

    • 增强了与 Active Directory 的集成,支持更多用于诊断和故障排除的选项,如 /validate/user
    • 没有显著的新命令选项。
  4. Windows Server 2012/2016/2019:

    • 继续增强了命令行工具的功能,特别是在混合环境和云基础设施中的支持。
    • nltest 命令功能基本保持一致,重点是兼容性和网络环境的管理。
  5. Windows 10/11:

    • nltest 在这些版本中依然支持所有基本功能,且提供了一些新的功能选项,特别是在支持不同工作组和域配置的环境中。
    • 特别针对较小的 IT 环境或个人使用者,增强了命令行功能的可用性。

此表概述了每个版本中 nltest 的常见支持功能。如果您需要进一步了解具体版本或命令选项的详细信息,可以参考每个版本的官方文档。


nltest 是一个 Windows 命令行工具,用于测试和管理 Windows 域的信任和连接状态。以下是一些常用的 nltest 命令示例:

1. 查询域信任关系

bashCopy Code
nltest /domain_trusts

该命令显示当前计算机与其域和其他信任域之间的信任关系。

2. 验证域控制器

bashCopy Code
nltest /server:<DomainControllerName> /sc_verify:<DomainName>

验证指定的域控制器是否可以访问指定的域。

示例:

bashCopy Code
nltest /server:DC01 /sc_verify:example.com

3. 查询当前域的域控制器

bashCopy Code
nltest /dclist:<DomainName>

列出指定域的所有域控制器。

示例:

bashCopy Code
nltest /dclist:example.com

4. 获取当前计算机的域信息

bashCopy Code
nltest /domain

该命令返回当前计算机所属的域信息。

5. 显示计算机的安全通道状态

bashCopy Code
nltest /sc_query:<DomainName>

查询计算机与指定域的安全通道状态。

示例:

bashCopy Code
nltest /sc_query:example.com

6. 检查域信任的详细信息

bashCopy Code
nltest /trusted_domains

列出当前信任的所有域。

nltest 是一个强大的工具,适用于域管理和故障排除,以上命令可以帮助你获取域控制器的信息、验证信任关系以及查询安全通道状态等。


7. 列出所有信任的域

bashCopy Code
nltest /trustdoms

此命令列出当前计算机所在域信任的所有域。

8. 验证对指定域控制器的连接

bashCopy Code
nltest /server:<DomainControllerName> /sc_verify:<DomainName>

此命令验证当前计算机是否可以与指定的域控制器建立安全通道。

示例:

bashCopy Code
nltest /server:DC02 /sc_verify:example.com

9. 重新启动域控制器的安全通道

bashCopy Code
nltest /sc_reset:<DomainName>

如果安全通道出现问题,可以使用此命令重置与指定域的安全通道。

示例:

bashCopy Code
nltest /sc_reset:example.com

10. 查询计算机的安全标识符 (SID)

bashCopy Code
nltest /sid

此命令显示当前计算机的 SID 信息。

11. 显示当前计算机的 FQDN

bashCopy Code
nltest /fqdn

返回当前计算机的完全合格域名(FQDN)。

12. 查询站点信息

bashCopy Code
nltest /site

此命令显示计算机所属的 Active Directory 站点。

13. 检查 Netlogon 服务的状态

bashCopy Code
nltest /dbflag:0x2080ffff

通过设置 Netlogon 的调试标志,可以帮助诊断域相关问题。

14. 查询指定计算机的安全通道状态

bashCopy Code
nltest /sc_query:<DomainName> /server:<ComputerName>

此命令检查特定计算机与指定域之间的安全通道。

示例:

bashCopy Code
nltest /sc_query:example.com /server:ComputerName

15. 获取当前计算机的角色

bashCopy Code
nltest /roles

显示当前计算机在 Active Directory 中的角色(如主域控制器、备份域控制器等)。

nltest 提供了丰富的选项,用于管理和排查 Active Directory 和域环境中的问题。通过以上命令,你可以有效地获取和管理域信息,确保网络环境的正常运行。


16. 获取域控制器的角色信息

bashCopy Code
nltest /role:<RoleName>

此命令用于获取特定角色的信息,比如主域控制器或全局编录。

示例:

bashCopy Code
nltest /role:DC

17. 强制更新组策略

bashCopy Code
nltest /policy

这个命令用于强制计算机更新其组策略设置。

18. 检查 DNS 设置

bashCopy Code
nltest /dns

此命令检查当前计算机的 DNS 配置是否正确。

19. 查询 Active Directory 域的安全设置

bashCopy Code
nltest /showtrust

显示当前域的信任关系及相关安全设置。

20. 获取当前计算机的 NetBIOS 名称

bashCopy Code
nltest /netbios

此命令显示当前计算机的 NetBIOS 名称,有助于网络故障排除。

21. 验证一个用户的 SID

bashCopy Code
nltest /user:<Username>

此命令验证特定用户的 SID 信息。

示例:

bashCopy Code
nltest /user:username

22. 测试与域控制器的连接

bashCopy Code
nltest /server:<DomainControllerName> /sc_query

检查当前计算机与指定域控制器之间的连接。

23. 获取当前计算机的域信息和 SID

bashCopy Code
nltest /domain /sid

该命令返回当前计算机的域名和对应的 SID 信息。

24. 查询当前域的全部组

bashCopy Code
nltest /groups

列出当前域中的所有组。

25. 检查信任的详细信息

bashCopy Code
nltest /trusted_domains /v

提供详细的信任域信息,包括类型和状态。

26. 查询 Active Directory 的域名

bashCopy Code
nltest /domaindns

返回当前计算机的 DNS 域名信息。

27. 检查安全通道的详细信息

bashCopy Code
nltest /sc_query:<DomainName> /server:<DomainControllerName>

获取与指定域控制器的安全通道的详细状态。

28. 获取当前计算机的操作系统版本

bashCopy Code
nltest /version

此命令返回当前计算机的操作系统版本信息,有助于版本兼容性排查。

29. 通过 IP 地址查询域控制器

bashCopy Code
nltest /server:<IPAddress>

使用 IP 地址查询指定域控制器的信息。

30. 查询计算机的完整域名

bashCopy Code
nltest /fqdn

显示计算机的完整域名,适用于网络配置和 DNS 故障排除。

以上命令扩展了 nltest 的使用范围,提供了更多的功能,帮助你在 Active Directory 环境中进行管理和故障排除。通过这些命令,你可以深入了解域的状态和配置,确保系统的稳定性和安全性。


31. 列出所有信任的域

bashCopy Code
nltest /trusted_domains

该命令会列出所有信任的域信息,帮助你了解域之间的信任关系。

32. 检查与特定域的信任状态

bashCopy Code
nltest /domain_trust:<DomainName>

验证当前域与指定域的信任关系。

33. 列出指定用户的组成员身份

bashCopy Code
nltest /user:<Username> /groups

此命令显示特定用户所属的所有组,有助于权限管理。

34. 查看域控制器的角色持有者

bashCopy Code
nltest /role:All

获取所有角色的持有者信息,帮助确认角色分配是否正常。

35. 测试 Kerberos 认证

bashCopy Code
nltest /kccexport

导出 Kerberos 票证的详细信息,适用于 Kerberos 认证问题排查。

36. 查询最近的域控制器

bashCopy Code
nltest /dsgetdc:<DomainName>

查找指定域的最近域控制器,帮助识别网络中可用的域控制器。

37. 查看组策略处理的详细信息

bashCopy Code
nltest /gpresult

获取当前计算机的组策略应用情况,帮助确认策略是否正确应用。

38. 强制重新建立安全通道

bashCopy Code
nltest /sc_reset:<DomainName>

重置与指定域的安全通道,适用于安全通道问题的解决。

39. 检查域控制器的 DNS 记录

bashCopy Code
nltest /dnsgetdc:<DomainName>

查询指定域的域控制器的 DNS 记录,确保 DNS 配置正确。

40. 验证 LDAP 连接

bashCopy Code
nltest /ldap

测试当前计算机到域控制器的 LDAP 连接,适用于 LDAP 认证问题的排查。

41. 获取域的 SID 及其版本信息

bashCopy Code
nltest /domain_sid

返回当前域的 SID 及其版本信息,帮助管理和迁移域。

42. 查询本地计算机的域角色

bashCopy Code
nltest /role:<LocalMachine>

获取本地计算机的域角色信息,确认其在域中的作用。

43. 监测和记录域控制器的状态

bashCopy Code
nltest /sc_check:<DomainControllerName>

检查指定域控制器的状态并记录结果,适合于定期监测。

44. 查询当前计算机的 Netlogon 状态

bashCopy Code
nltest /netlogon

显示 Netlogon 服务的状态,帮助解决登录和认证问题。

45. 列出所有可用的命令和选项

bashCopy Code
nltest /?

显示所有可用的 nltest 命令和选项,快速查找所需功能。

这些 nltest 命令可以帮助你更全面地管理和排查 Windows 域环境中的问题。通过这些工具,你能够有效监控域控制器的健康状态,验证网络配置,处理组策略问题,确保整体环境的稳定性和安全性。


SnowShot_2025-11-19_16-35-14

posted @ 2024-10-31 17:49  suv789  阅读(1416)  评论(0)    收藏  举报