DSP

域安全通道实用工具nltest.exe的使用简介(下)

2019-07-13 17:42发布

  /DSGETDC: /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: 排序使得位于列表的第一个 /ACCOUNT: 返回包含账户的域控制器信息 /RET_DNS 返回DNS域的域控制器 /RET_NETBIOS 返回NetBIOS域控制器 /DNSGETDC: /PDC 只返回主域控制器 /GC 只返回指派为全局编录的域控制器 /KDC 只返回指派为Kerberos密钥分配中心的域控制器 /WRITABLE 所有的活动目录域控制器将会返回,而NT 4.0备份域控制器BDCs将不会返回 /LDAPONLY 返回运行LDAP应用程序的服务器 /FORCE 强制计算机在DNS服务器上运行命令,而不是在缓存中查找信息 /SITESPEC 仅返回包含站点的记录,此参数要和/SITE一起使用 /DSGETFTI: /UPDATE_TDO 更新帧间信任上本地存储信息 /DOMAIN_TRUSTS /PRIMARY 仅返回计算机账户属于的域 /FOREST 仅返回主域同一森林下的域 /DIRECT_OUT 返回被主域明确信任的域 /DIRECT_IN 返回明确信任主域的域 /ALL_TRUSTS 返回所有已信任的域 /V 显示详细的输出,包括域的SIDsGUIDs /DSDEREGDNS: /DOM: 指定主机的DNS域名称,如果没有指定,将假定DnsHostName的后缀名就是DNS域名称 /DOMGUID: 删除基于GUIDDNS记录 /DSAGUID: 删除基于GUIDDSA记录         应用举例:        例子一        假定域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上的两个域控制器C1C2,其中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中的C1C2域控制器都信任域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: /PDC_Repl,其中是主域控制器的真实名称,而不是域的名称。        问题解答:        问:DSA操作不能继续因为一个DNS查找错误        答:使用Nltest /dsgetdc: /pdc /force /avoidself命令确定是否返回了正确的主域控制器;如果使用REPLMON或者REPADMIN命令报告此处有一个连接对象但是没有一个复制链接,问题可能出在KCC上;在主域控制器上运行以下命令:nltest /DBFLAG:0x2000FFFFnltest /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