/DSGETDC:<DomainName>
/PDC
只返回主域控制器
/DS
只返回Windows 2000或者Windows Server 2003域控制器
/DSP
请求Windows 2000或者Windows Server 2003域控制器,如果没有,返回NT与控制器
/GC
只返回指派为全局编录的域控制器
/KDC
只返回指派为Kerberos密钥分配中心的域控制器
/TIMESERV
只返回指派为时间服务的域控制器
/GTIMESERV
只返回指派为主要的时间服务的域控制器
/NETBIOS
指定计算机名称为NetBIOS名称
/DNS
指定计算机名称为FQDNs
/IP
返回指定IP地址的域控制器
/FORCE
强制计算机在DNS服务器上运行命令,而不是在缓存中查找信息
/WRITABLE
所有的活动目录域控制器将会返回,而NT 4.0备份域控制器BDCs将不会返回
/AVOIDSELF
确保可以定位到域中另外的域控制器上
/LDAPONLY
返回运行LDAP应用程序的服务器
/BACKG
返回备份域控制器
/SITE:<SiteName>
排序使得<SiteName>位于列表的第一个
/ACCOUNT:<AccountName>
返回包含账户<AccountName>的域控制器信息
/RET_DNS
返回DNS域的域控制器
/RET_NETBIOS
返回NetBIOS域控制器
/DNSGETDC:<DomainName>
/PDC
只返回主域控制器
/GC
只返回指派为全局编录的域控制器
/KDC
只返回指派为Kerberos密钥分配中心的域控制器
/WRITABLE
所有的活动目录域控制器将会返回,而NT 4.0备份域控制器BDCs将不会返回
/LDAPONLY
返回运行LDAP应用程序的服务器
/FORCE
强制计算机在DNS服务器上运行命令,而不是在缓存中查找信息
/SITESPEC
仅返回包含站点<SiteName>的记录,此参数要和/SITE一起使用
/DSGETFTI:<DomainName>
/UPDATE_TDO
更新帧间信任上本地存储信息
/DOMAIN_TRUSTS
/PRIMARY
仅返回计算机账户属于的域
/FOREST
仅返回主域同一森林下的域
/DIRECT_OUT
返回被主域明确信任的域
/DIRECT_IN
返回明确信任主域的域
/ALL_TRUSTS
返回所有已信任的域
/V
显示详细的输出,包括域的SIDs和GUIDs
/DSDEREGDNS:<DnsHostName>
/DOM:<DnsDomainName>
指定主机的DNS域名称,如果没有指定,将假定DnsHostName的后缀名就是DNS域名称
/DOMGUID:<DomainGuid>
删除基于GUID的DNS记录
/DSAGUID:<DsaGuid>
删除基于GUID的DSA记录
应用举例:
例子一
假定域A信任域B,运行Windows NT工作站的计算机TAN是域A的一个成员。现在我们输入:
C:\>nltest /trusted_domains
Trusted domain list:
B
The command completed successfully
可以看到域A上已信任的域B。
例子二
查看域A上的域控制器,只需要输入:
C:\>nltest /dclist:A
List of DCs in Domain A
\\C1 (PDC)
\\C2
The command completed successfully
可以看到域A上的两个域控制器C1和C2,其中C1是主域控制器。同理,我们要看域B上的域控制器信息,参照上面的格式输入即可查询到想要的信息
例子三
要查看域A中每个域控制器与域B中的一个域控制器之间的安全通道,只需要按下面的输入:
C:\>nltest /server:C1 /sc_query:B
Flags: 0
Connection Status = 0 0x0 NERR_Success
Trusted DC Name \\D1
Trusted DC Connection Status Status = 0 0x0 NERR_Success
The command completed successfully
C:\>nltest /server:C2 /sc_query:B
Flags: 0
Connection Status = 0 0x0 NERR_Success
Trusted DC Name \\D1
Trusted DC Connection Status Status = 0 0x0 NERR_Success
The command completed successfully
从上面可以看出域A中的C1和C2域控制器都信任域B中的D1域控制器。
例子四
要查看工作站TAN是否与域A的域控制器有明确的信任关系,可以如下输入:
C:\>nltest /server:TAN /sc_query:A
Flags: 0
Connection Status = 0 0x0 NERR_Success
Trusted DC Name \\C1
Trusted DC Connection Status Status = 0 0x0 NERR_Success
The command completed successfully
从上可以看出工作站TAN与域A中的C1域控制器之间有一个信任连结。
例子五
要测定一个域控制器是否能鉴别一个用户帐号,可以按下面所示输入:
C:\>nltest /whowill:B administrator
[20:58:55] Mail message 0 sent successfully
(\MAILSLOT\NET\GETDC939)
[20:58:55] Response 0: S:\\D1 D:B A:administrator (Act found)
The command completed successfully
C:\>nltest /whowill:A administrator
[21:26:13] Response 0: S:\\C1 D:A A:administrator (Act found)
[21:26:15] Mail message 0 sent successfully
(\MAILSLOT\NET\GETDC295)
The command completed successfully
大家可以看出两个administrator分别与域B的域控制器D1和域A的域控制器C1产生了一个通话,证明两个administrator都分别在各自的域中得到验证。
例子六
使用nltest.exe找给定用户帐号的一个已信任域,我们只需要按下面的输入:
C:\>nltest /finduser:administrato
Domain Name: B
Trusted DC Name \\D1
The command completed successfully
从上面我们可以看出使用administrator账号找到了域B和域B中的已信任域控制器D1。
例子七
要检验备份域控制器BDC同步的状态,只需要如下输入:
C:\>nltest /bdc_query:A
Server : \\C2
SyncState : IN_SYNC
ConnectionState : Status = 0 0x0 NERR_Success
The command completed successfully
看出备份域控制器C2的同步状态是IN_SYNC,也即备份域控制器C2的的同步状态良好。
例子八
Nltest.exe也可以用来同步账号数据库,比如从一个主域控制器同步域,我们只需要输入:C:\ nltest /PDC_Repl;要从一个成员服务器、备份域控制器或者一个Windows NT工作站同步域,输入:C:\ nltest /Server:<PDCName> /PDC_Repl,其中<PDCName>是主域控制器的真实名称,而不是域的名称。
问题解答:
问:DSA操作不能继续因为一个DNS查找错误
答:⑴使用Nltest /dsgetdc: /pdc /force /avoidself命令确定是否返回了正确的主域控制器;⑵如果使用REPLMON或者REPADMIN命令报告此处有一个连接对象但是没有一个复制链接,问题可能出在KCC上;⑶在主域控制器上运行以下命令:nltest /DBFLAG:0x2000FFFF和nltest /DSGETDC: /GC,然后根据输出信息判断错误出在什么地方;⑷运行nltest /dsgetdc: /gc /force确定你能否联系一个GC;⑸在主域控制器和发生错误的服务器上检查“password last changed”参数。
问:组策略在交叉域控制器之间应用不一致
答:使用chkpolicy the name of your domain命令运行以下脚本:
@echo off
REM \logs\chkpolicy domain_name
set filename=sysvol\%dom_name%\Policies\{6AC1786C-016F-11D2-945F-00C04fB984F9}\Machine\Microsoft\Windows NT\SecEdit\GPTTMPL.INF
nltest /dclist:%dom_name% > dclist.tmp
del dclist1.tmp
FOR /F "eol=; tokens=1 delims=, " %%i in (dclist.tmp) do (
@echo %%i >> dclist1.tmp
)
FOR /F "eol=. tokens=1 delims=. " %%i in (dclist1.tmp) do (
@echo %%i
dir "\\%%i\%filename%"
)
问:目录服务太忙而不能完成操作
答:运行以下脚本:
setlocal
set destgc=__setgcnamehere__.site1.forest1.com
:domain1
repadmin /delete DC=domain1,DC=site1,DC=forest1,DC=com %destgc% /nosource
if %errorlevel% == 8438 goto :domain2
:domain2
repadmin /delete DC=domain2,DC=Site1,DC=forest1,DC=com %destgc% /nosource
if %errorlevel% == 8438 goto :domain3
REM ...
Endlocal