网络连通诊断(Netdiag.exe)
由于CW2KP对网络的支持比之前面的windows版本已经大大强化,故支持工具中,对网络故障也配备有相应的诊断测试工具,这次介绍的Netdiag.exe,就是颇为方便实用的一个。
该工具只采用命令行形式(这样系统资源的开销很小),用来帮助你诊断并排除网络连通方面的故障,它使用的主要方法是利用执行特定的程序来测试网络的状态,一步步分隔故障区域,最终却定故障发生的确切部位.测试的核心是得到网络关键的状态信息,直观些说是将问题暴露出来,方便技术支持人员、网络管理人员进行问题的排查和分析,以决定采取哪些直接有效的手段.更优秀之处在于:这个工具简便易用,使用的参数和开关很少,但功能强大,这样,无论是技术支持人员或网络管理人员,都尽可集中精力来分析输出状态而无需心有旁鹜,因而倍受上述人员的喜爱。
由于该工具包含的内容太多,我拟分成两部分介绍,本次主要先介绍语法和测试名称,其余的都放到下一篇中。
首先指出:在下述的大部分情况下,或实际应用这个工具的时候,系统必须已经"绑定"TCP/IP协议和网络适配器.这个网络连通测试工具主要具备以下特点:
1.采取命令行执行的方式,更便于编写脚本文件.
2搭载Windows Management Instrumentation (WMI)与相应的动态连接库以及MSINFO后,可以使用GUI登录指针.
3.搜集网络的状态信息、检测网络的驱动程序、协议驱动程序、接收/发送能力等等.
4测试接受应用程序或服务所产生的输入信息或返回信息的方法.
5.在Win32操作系统上的运行.
6.网络管理员可以用调度程序,每间隔一定时间自动生成报告.下面首先介绍语法,然后进行实例分析。
Netdiag的完整语法:
netdiag [/q] [/v] [/l] [/debug] [/d:DomainName] [/fix] [/DcAccountEnum] [/test:testname] [/skip:testname]
参数及含义:
/q
指定静态输出.(仅指错误信息)
/v
指定详细的输出.
/l
向 NetDiag.log文件发送输出.
/debug
指定更详细的输出信息,执行可能需要几分钟时间才能完成.
/d:DomainName
在指定域中查找域管理器.
/fix
维修局部的问题.
/DcAccountEnum
列举域管理器(中的)计算机账号.
/test:TestName
执行已经列出项目的测试或一般性测试,测试之前应检验一下,确保TCP/IP 协议已经"绑定",当然网络适配器也必须能正常工作.如果没有指定要跳过的测试,那么默认为进行所有测试,该工具将可以进行的所有测试都进行了命名,无论指定要进行的测试或指定要跳过的测试,都必须用到这些名字.为了方便查找,我将这些测试名称附以简单的说明列举在下面(以下部分中"测试"和"检验"可以理解为意义相同):
* Autonet - 自动进行APIPA检验,即自动进行"私用"IP地址检验.
* Bindings - 绑定检验
* Browser - 浏览器检验
* DcList -检验域控制器列表
* DefGw - 默认网关检验
* DNS - DNS 检验
* DsGetDc - 域控制器"发现"检验
* IpConfig - IP地址配置检验
* IpLoopBk - IP 地址 loopback ping 检验
* IPX - IPX 检验
* Kerberos - Kerberos 检验
* Ldap - LDAP 检验
* Member - 域成员资格检验
* Modem - Modem (调制解调器)诊断检验
* NbtNm - NetBT名称检验
* Ndis - Netcard 询问检验
* NetBTTransports - NetBT传送检验
* Netstat - Netstat 状态信息检验
* Netware - Netware 检验
* Route - 路由检验
* Trust - 信任关系检验
* WAN - WAN 配置检验
* WINS - WINS 服务检验
* Winsock - Winsock 检验
/skip:TestName
* 跳过指定名称的检验,这些检验的名称与上面列举出来的完全相同,所以不再重复列出.
执行这个程序,可以打开"开始->运行",然后在编辑框中键入"cmd",也就是打开命令行执行工具的界面(说穿了就是dos界面),在光标处键入netdiag/xx,这里的xx是选项部分,然后回车即可,例如键入netdiag/?,回车后可以得到所有的帮助信息,包括测试项目的命名信息。
我们在"网络连通测试工具"的上篇,介绍了应用语法和测试项目的命名介绍,这次我们将通过一个实作例子,学习如何进行连通检测的实战操作.因下面的介绍将涉及两个名词,所以先对这两个名词的含义进行解释:WINS:这是一个服务器名字,WINS是Windows Internet Name Service的缩写;Ping:是 TCP/IP协议中的一个用来验证配置和测试连通性的实用程序.好了,言归正传,下面我们假定一个网络出现了与链结方面有关的问题,那么技术支持人员或者网络管理员应当依据什么步骤使用Netdiag工具呢?如上篇所述,该工具可以自动进行一整套的测试,也可以进行指定项目的测试.至于选用哪种测试要根据情况.下面先介绍完全的测试.
所谓测试就是执行网络连通测试程序,先鼠标点击"开始->运行",编辑框中键入"cmd"回车,出现命令行程序窗口之后,在光标处键入"netdiag",回车,程序会开始自动执行测试.若不加任何选项,则随着测试的进行,相应的信息不断显示在屏幕上,例如一开始是计算机名称、域名主机服务器名称、系统名称(例如Workstation 2000)、CPU类型等等信息.然后进行网卡测试并显示结果,显示的方式为是否通过测试,如果通过,就显示Passed.
由于生成的测试结果很长,原不准备完全摘抄,怕编辑以为我想多骗他几文稿费银子而故意将文章抻长加水,后来想想,还是完整介绍出来,以求朋友们能先具备感性认识.以本人自学的经验,这些感性认识有时比那些令人头大的叙述要强十倍!英文好的也可以参考Support Tools目录中关于Netdiag使用文档中的例子,例子中每一项的检测结果,都与上篇所介绍的项目对应.
以下表中左边是测试过程中屏幕所显示的结果,右边是我加的中文简释:
英文的命令或显示的结果
中文简释
C:Program FilesSupport Tools>netdiag
执行测试程序
Computer Name: ginger
计算机名称
DNS Host Name: ginger.dns.microsoft.com
域名服务器主机名
System info : Workstation 2000 (Build 2072)
系统信息
Processor : x86 Family 6 Model 5 Stepping 1, GenuineIntel
处理器种类
List of installed hotfixes : Q147222
Netcard queries test . . . . . . . : Passed
网卡测试
Per interface results:
各个界面结果
Adapter : Local Area Connection
本地适配器连接
Netcard queries test . . . : Passed
Host Name. . . . . . . . . : ginger.dns.microsoft.com
主机名称
IP Address . . . . . . . . : 157.54.162.163
IāP地址
Subnet Mask. . . . . . . . : 255.255.252.0
子网掩码
Default Gateway. . . . . . : 157.54.161.1
默认网关
Primary WINS Server. . . . : 157.55.254.223
主WIN服务器
Secondary WINS Server. . . : 157.55.254.224
次WINS服务器
Dns Servers. . . . . . . . : 157.55.254.218
域名服务器
157.55.254.216
AutoConfiguration results. . . . . . : Passed
自动配置结果
Default gateway test . . . : Passed
默认网关测试
NetBT name test. . . . . . : Passed
NetBT名测试
WINS service test. . . . . : Passed
WINS服务测试
Global results:
全局结果:
Domain membership test . . . . . . : Passed
域成员资格测试
NāetBT transports tes
NetBT传送测试
List of NetBt transports currently configured.
当前传送配置列表
NetBT_Tcpip_{EF3D8BEA-884A-40FC-BB0C-1B59247CABB7}
Tcpip协议
1 NetBt transport currently configured.
以下为当前传送配置情况
Autonet address test . . . . . . . : Passed
自动网地址测试
IP loopback ping test. . . . . . . : Passed
IP往复测试
Default gateway test . . . . . . . : Passed
默认网关测试
NetBT name test. . .. . . . . . . . : Passed
Winsock test . . . .. . . . . . . . : Passed
Winsock测试
DNS test . . . . . .. . . . . . . . : Passed
域名服务器测试
Redir and Browser test . . . . . . : Passed
缓冲与浏览器测试
List of NetBt transports currently bound to the Redir
NetBt指向缓冲区的当前绑定传送的列表
NetBT_Tcpip_{EF3D8BEA-884A-40FC-BB0C-1B59247CABB7}
The redir is bound to 1 NetBt transport.
List of NetBt transports currently bound to the bārowser
NetBt指向浏览器的当前绑定传送的列表
NetBT_Tcpip_{EF3D8BEA-884A-40FC-BB0C-1B59247CABB7}
The browser is bound to 1 NetBt transport.
DC discovery test. .. . . . . . . . : Passed
DC发现测试
DC list test . . . .. . . . . . . . : Passed
DC列表测试
Trust relationship test. . . . . . : Passed
信任关系测试
Secure channel for domain 'home' is to '\skipper.corp.microsoft.com'.
信任关系测试的结果信息
Kerberos test. . . .. . . . . . . . : Passed
Kerberos 测试
LDAP test. . . . . .. . . . . . . . : Passed
LDAP测试
Bindings test. . . .. . . . . . . . : Passed
(协议)绑定测试
WAN configuration test . . . . . . : Skipped
WAN配置测试(被跳过)
No active remote access connections.
提示信息
Modem diagnostics test . . . . . . : Passed
Modem诊断测试
The command completed successfully
提示命令全部顺利完成
上表中的有些格里没有填写中文内容,这有两种原因:一是重复部分只填写最先出现的一个,以后再出现的均不再重复填写;二是限于本人水平和手头资料的匮乏,其含义暂不清楚,所以与其弄巧不如藏拙. 上面的测试是完整的,自动地进行的,这样好是好了,但有问题的和无问题的都必须过一遍,消耗时间太长.如果已经基本分割出故障部位,仅需要特定的测试,该如何进行呢?请稍安勿燥,下一次,我们将讨论如何进行指定项目的测试.
前面说过,netdiag命令可以灵活地使用:既可执行完整性测试,也可执行针对特定项目的测试,前者得出的结果全面而完整,缺点是占用时间较长。后者针对性强,有立竿见影之效。实际应用中可以根据情况灵活掌握。如果希望针对特定的项目进行测试,可以在命令之后附加要测试的项目名称.这些名称在第一部分中已经提到过.由于这些名称是CW2KP定义好的,所以不能再使用别的或自行定义的名称,那样系统是不能识别的.为了方便大家使用,这里将每种测试的名程都列出来,并对每一种测试的用处和目的都予以尽量详细的解释.需要声明的是,由于本人水平有限,资料也不甚完备,成文时虽再三推敲,也难免错误,希望大方之家不吝赐教。
Network adapter
1.
netdiag /test:Bindings
A.列举所有安装的网络适配器配置的详细资料,包括:网络适配器的描述、物理地址与资源使用情况.
B.校验LAN 和WAN适配器的状态,例如是否初始化或是否有错误等等.
C."感知"网络适配器(如果连通的话).
WAN
2.
netdiag /test:WAN
A. COM端口的使用与设置,包括:数据位、停止位、奇偶校验位、波特率、错误检测、压缩、LCP扩展、统一代码双字节字符集(1988-91年建立的标准)的支持等等.
B. "感知"WAN网络适配器(如果连通的话)
Bindings(协议)绑定测试
3.
netdiag /test:Bindings
测试所有的网络绑定,包括有问题的绑定
Winsock
4.
netdiag /test:Winsock
A.列举提供套接Winsock的服务层次,包括所支持的版本、厂商信息描述、套接字、数据包等方面的信息
B. Ping Web 代理服务器,如果存在的话.(注意这里Ping的含义是指执行Ping命令)
TCP/IP 协议
TCP/IP的一般测试:
5.
netdiag /test:IPConfig
A.配置信息:包括:IP地址、子网掩码、默认网关、激活自动配置、激活DHCP和LMHOSTS、 主机名、DSN服务、DSN的域、WINS服务、节点类型、NetBIOS的ID范围等等,总共有大约20个方面的信息,具体可以参照上一篇所给出的例子.
6.
netdiag /test:DefGw
A. 列举默认网关设置:如果当前默认的网关地址可用,执行Ping(命令),如果不能"到达"当前的网关,则对每一个网关执行Ping(命令),直至成功或直至完成列表内的所有(网关)
DHCP
(DHCP是指:主机动态配置协议,DHCP可以对IP地址进行动态分配,并确保不产生地址冲突)
B . DHCP (动态IP地址) “租用” 的开始和结束
C. 如果APIPA地址在使用中,则“广播” DHCP 服务器可用。
NETBT
7.
netdiag /test:Netstat
列举本地和远程的cache 名,(例如:nbtstat -c 和 nbtstat -n)
DNS server
8.
netdiag /test:DNS
A. 用Ping程序来测试 DNS 服务器.
B. 如果服务器不可用,则将目标地址、状态码和描述信息记录到日志文件中.
C. 尝试进行下一个服务器,直至遍历每一个服务器.
D. 查询DSN服务器53端口的SOA记录.
WINS server
9.
netdiag /test:WINS
A. 用Ping程序来测试 WINS服务器.
B. 测试工作组是否成功注册有唯一的名称。
C. 完成对上述名称的测试
B. 如果服务器不可用,则将目标地址、状态码和描述信息记录到日志文件中.
D. 尝试进行下一个服务器,直至遍历每一个服务器.
IPX
10.
netdiag /test:IPX
A. 得到帧类型,网络的ID,激活源路由,路由器的MTU信息等等。.
Routing
11.
netdiag /test:Route
A. 如果路由器持续稳定,则列举静态路由及报告,应注意的是,本项测试不适用于windows95&98的操作平台。
Netware
12.
netdiag /test:Netware
A.目录或绑定注册,如果目录在默认环境中注册,则指向booyup.
Distributed systems分布系统的测试
RPC Tests – 完成RPC绑定和应答。
13.
netdiag /test:DsGetDC
A.在你的域中发现域控制器,包括:域控制器名称、IP地址、域名、域的GUID、目录名、域控制器站点名、(我们)自己的站点名、标志等等。
B. 在你的域中发现主域控制器PDC(PDC:是Primary Domain Controller的缩写),包括:域控制器名称、IP地址、域名、域的GUID、目录名、域控制器站点名、(我们)自己的站点名、标志等等。
C.在你的域中发现windows2000的域控制器,包括:域控制器名称、IP地址、域名、域的GUID、目录名、域控制器站点名、(我们)自己的站点名、标志等等。
14.
netdiag /test:DcList
列出域中的域控制器(表)。
15.
netdiag /test:Trust
信任关系测试??列举NTLM和Kerberos 的信任关系。
16.
netdiag /test:Kerberos
Kerberos 测试: 包括服务器名、终止时间、更新时间。注意这个测试不能用于Windows 95/98 及 Windows NT 4.0
17.
netdiag /test:Ldap
A. LDAP 测试,不鉴别调用LDAP??得到当前的时间、服务器名称、设置和规划等等。注意这个测试不能用于Windows 95和Windows NT 4.0
B. NTLM 鉴别LDAP调用
C.鉴别LDAP调用
D. IPSEC 测试:列举IPSEC 的策略设置。注意这个测试不能用于Windows 95/98 和 Windows NT 4.0
由于有太多的名词术语以英文缩写的形式出现,其具体含义不可能都在本文中加详尽的解释,但你也不必因此而沮丧,因为在支持工具里,位于windows 2000 support toolsools help中,有一个叫Glossary(术语表)的文件,绝大部分术语都可以在里面找到,提供有按英文字母顺序排列的索引,并有详尽的解释,原文是英文.如果你的英文可以,不妨进去查找参考一下.