本文开始介绍命令的使用方法: 前面在介绍命令格式的时候,已经指出:完整的命令格式是:先是Dnscmd,随后是服务器名称变量,然后才是命令和参数。这里为了节省篇幅,直接从命令开始分析。3 H# u8 q: f2 y, h9 c4 O, S
命令: /Info
* ?$ A [& U" f2 N* j8 C 用途:利用/Info 命令,可以列出指定的DNS服务器的指定属性。显然,这需要在命令参数中指定要显示的属性。如果不指定属性,执行这一命令后列出的将是所有的属性。8 @9 e7 k& v3 a- @- W5 B
用法:0 O ~# R. F0 Y4 y P
dnscmd ServerName /Info [Property]
8 ~$ m3 u( i6 E; n3 Y; S" f3 N 参数:
$ D$ v! L% F) f& w7 c% k( r+ ?, I% a ServerName # t; L1 j. }" Y
服务器名称在上一篇中已经介绍过,此处省略。
7 o9 L/ x" B. O$ x( ?( W9 Z7 |# \% P [Property] 方括号中参数是可选的,这里是指定的、需要显示的属性。如果不指定属性,则命令执行之后将显示全部属性。2 W* @. p* W# ^; T: m" M( n
下面是该命令使用的一个比较完整的例子:! W7 u) g& {, Q& Q" t
在执行相应的命令后,系统会输出英文的显示信息。在下面输出的文本中的中文是由本人加入的解释,并不是原输出所带。DNS服务器的IP地址假设为172.16.12.1:
. `1 }7 J; T4 H* R: `/ D' Qdnscmd 172.16.12.1 /info 只使用命令而不使用参数
& r! v3 r! }1 i* Z" d, `% p, q输出的信息:
" Y, Z! \& I" [9 ^- S3 J1 zDNS Server 172.16.12.1 Information:" n, i1 s q0 f; k; t) O
C:\>dnscmd 172.16.12.1 /info) G" l- W. d% n! e. b; e7 y' Y
Query result: 查询结果1 |- C0 h1 e+ Z8 x% S1 d) @: w% K
Server info: 服务器信息
8 [5 {0 z } k2 t V ptr = 00074718 端口, Y2 f5 p& a1 [: k
server name = myserver.microsoft.com 服务器名称
9 F0 L/ p- f: D* Z, i& V version = C2000005 版本+ f0 Q8 @3 _- j( h
DS container = c DS“容器”' k1 `2 S' ?0 }1 p
Configuration: 配置信息 这些信息的含义请参考有关资料1 r" y: D; a5 S3 o# ?( \, }0 Y
dwLogLevel = 000000007 a( Z! A* N" X( [% O
dwDebugLevel = 00000000# K8 f3 Y) |# P: U0 I# s5 X
dwRpcProtocol = FFFFFFFF- J) a" ^4 T$ ^- f7 g R6 Y
dwNameCheckFlag = 00000002- G3 Y; m A) k; e* d
cAddressAnswerLimit = 06 z9 X. ?& m8 i% |
dwRecursionRetry = 3; F7 m1 _) ^1 A g& j( M& P
dwRecursionTimeout = 15
6 m" D5 c+ ` k2 Z) C% e dwDsPollingInterval = 300
- l) f2 I$ A3 y1 n Configuration Flags: 配置标志 这些标志值就是目前该标志所处的状态。其含义请参考有关资料2 _( _- {1 D7 t# N& I( K
fBootMethod = 3 ; q G- e; d& y0 ~; H1 |* m- n
fAdminConfigured = 1 . z" V0 _6 Z3 _! [- h
fAllowUpdate = 1 9 m# ?% j; x6 U, v4 \7 C$ J/ ~
fDsAvailable = 1
+ e& f& m( i' ~3 ZfAutoReverseZones = 1 ( Z& E" s; v4 q0 t# L3 }
fAutoCacheUpdate = 0
( H1 l* D% T. B+ Q/ ?fSlave = 0 5 m9 ~" m9 f+ j* G
fNoRecursion = 0 3 b. O& n# T* H. f1 _
fRoundRobin = 1 ' \- f" [6 S+ e2 M+ @% a* L3 c6 K
fLocalNetPriority = 1
( j+ Z$ P& K! y5 P: N a. r0 _# IfStrictFileParsing = 0
8 q Y5 R2 B; E, s( NfLooseWildcarding = 0
& N4 A) n1 v$ m! u4 ?1 ?fBindSecondaries = 1 , X6 |/ x: _( i5 N+ ]) ], y/ o
fWriteAuthorityNs = 0
j% w+ l# `9 _) }# qAging Configuration:
# P& H' m) g* r- ]! z: w8 PScavengingInterval = 0 " m# I- Y& _( X, B2 n" z
DefaultAgingState = 0 ' ~, S- N6 j5 {- s: l
DefaultRefreshInterval = 168 , h! P2 T$ c4 S" N
DefaultNoRefreshInterval = 168
+ \6 f8 r+ p' ^, r ServerAddresses:
, R- q! V' s3 O! P Addr Count = 11 k; T* ^0 i. R0 l' J& T
Addr[0] => 172.16.12.1
! _( f0 c) w: s0 c ListenAddresses:
8 q( M% r" l# w! c) n$ e/ W NULL IP Array.% s' x2 l2 K$ b1 C
Forwarders:
% \" O' Q/ V& B# I" o Addr Count = 10 g ]0 N3 P- U2 N) [; Q, r; x
Addr[0] => 172.16.4.3
9 c: `3 Y8 V& A- x forward timeout = 5, v, `2 Q1 V! X( z' \
slave = 0/ U( l- P9 O6 E- |5 b& y
Command completed successfully.命令顺利执行完毕 ' E& \ G+ g) i( S. J& j9 o9 C' K- A: N
笔者所以将此例子完整地放置在本文中,并不为完整地解释每条输出信息的含义,而是为朋友们提供一个观察该命令输出的范本,借以获得感性认识。若你已经对上述例子有了印象,待到自己执行这个命令获得输出信息之后,肯定有“这个我曾经见过”的感觉。因为,在排除故障的过程中,哪怕仅有间接的经验,也比完全陌生强很多。
; }' D9 m# p. ]3 f: ]4 l' a) P | 命令:/Config& Q" Q8 k' @7 Z2 {! {! |' @4 }
如果服务器的zone没有指定,使用命令 /Config 可以重置DNS服务器的属性。如果已经指定了zone的名称,则该命令只重置zone的属性。zone的含义是区域或范围的意思。* I* i0 L" \: z& I# j A
1 L# j4 {4 @! z$ m8 m0 S: Q 用法:4 Q: E. n1 A9 ?0 ^0 g! R0 ?
dnscmd ServerName /Config [ZoneName |..AllZones] Property Value
2 q' l3 E( {8 w2 x) Q4 C. U9 H$ ] 参数. r0 y/ r; |7 `5 Q8 J. j7 j
ServerName :服务器名称,意义同上 ) W |, T$ x8 A q
ZoneName:
2 f, ~4 h O7 q4 ] 这个参数指定所配置的区域zone的名字,如果使用..AllZones ,则重置所有zone的属性。如果不指定zone名字,只能重置服务器属性。 + i( S8 F& c& B" f @
Property:
" R0 }6 A4 Y! Y; f. F 这个参数是属性。这里所说的属性有:- }, C. d" U3 S, R+ _! s7 j
与服务器有关的属性:例如:
, R, G w, ?& H/EnableRegistryBoot
) N9 q2 v# q* U+ N& u f/RpcProtocol- m' N9 [, a+ M3 y- q
/LogLevel- g3 ^/ p) H- q2 |3 K, g. _
/EventlogLevel 等等 (限于篇幅未能全部列出)" W5 X2 N5 r; }: A' H
与Zone 有关的属性,例如:
. W0 {$ x& W' @6 ~ /SecureSecondaries
' S( m+ @# D% e/ U /AllowUpdate7 s+ X8 {) H. |% _
/Aging! }; a, h0 X; e# S/ I% F6 d
/RefreshInterval Value# ^8 g( Z: ]& n6 T6 c8 C. D
/NoRefreshInterval Value
; T6 H( g4 d8 v3 U7 N! I9 y 属性值:7 Y9 t+ j/ ]% K* E6 Q; D3 @9 M
属性值都是一个双字长的值,即类型为 DWORD ;以0x 打头的十六进制形式 。
; g9 q! R: D# @+ a5 f从命令的参数结构来看,这个命令的用途是重置、实际上也可以理解为修改服务器的zone,因为命令语句的最后可以指定要重置的属性值。指定的值不同,重置的结果也就不同。
# h3 U9 n& m3 ^, Y4 P9 d 命令: /Statistics
" P! ?+ m8 V7 H7 D: ?7 _# ^ 作用:利用这个命令可以显示或删除服务器的统计数据或信息。在命令的可选择项目中,有两个每次仅能采用其一的参数,或显示或删除由你自己确定。
9 f' [2 c" l5 R 用法:
& v' j/ o- O4 p/ c! P dnscmd ServerName /Statistics [Filter|/Clear]8 u7 f7 f5 J* z6 t
参数:8 k2 C, u' v4 _- X
ServerName
! T+ L! [5 W4 | f服务器名称,含义同上。! |& u6 H8 ?& ]2 p" \1 }
可选参数介绍:
8 B8 H# `8 |% J) \$ {共有两个参数,每次只能使用其中的一个。
& L: f; F1 t: x2 l 1.过滤(Filter)$ s' Y5 ` Y: q3 {2 K& Z( }2 _
使用该参数,可关联或过滤渴望得到的统计信息,如果不使用果料指定,则默认显示所有的统计信息。
5 Q7 P" _, p9 [$ O' m+ C可以使用以下的数据来指定过滤的信息,由于大部分的含义都比较容易懂,故此处不再加中文注释。不过应当注意:指定的过滤参数只能是下列之一,不可自己杜撰:
; L6 m; ~8 V4 I4 K- ~ ~ 00000001 -- Time' u1 o2 b& N4 p2 o6 C
00000002 -- Query
7 W. `' S$ R0 A5 @ 00000004 -- Query2
& Z- W+ l1 v: M 00000008 -- Recurse
4 m. K" K R2 \ 00000010 -- Master
, j( V" B: K# G0 ]: ~ 00000020 -- Secondary
) p. W L0 g) Z* Z. c+ C& t 00000040 -- Wins6 E; d6 w8 S( a2 g/ v; |
00000100 -- Update
0 B6 v3 F" U, J 00000200 -- SkwanSec
2 c, p2 u2 P, p5 J) N8 ~ 00000400 -- Ds* T, X/ X: k- m: ]
00010000 -- Memory
$ B# d* g$ S: J$ X1 y; S$ s7 R 00100000 -- PacketMem' l: |& C, p) I5 C7 r3 f! W" I, L
00040000 -- Dbase" s7 ]9 I9 L8 k) h7 w
00080000 -- Records2 r2 A# \% |# ?8 g5 M7 T. f" S( i
00200000 -- NbstatMem0 Y4 L3 J4 D5 q8 T$ d
2.清除 /Clear ; c4 _6 `2 C. O- S( X. ]
这个参数用来清除统计信息。5 S9 I: l: W* K% F3 A$ q& c
本来,这个命令有一个非常详细的例子,其间有各种统计信息的显示情况和格式。由于篇幅太大,无法附加在本文中。如果你有兴趣研究,请参看支持工具的帮助文档(不是windows2000的帮助文档)。6 R- o4 M7 D, n! O
5 ?7 O+ @6 ?4 j9 \) n( R
3 J1 w, g! K5 w7 i2 J( j$ y" w$ t' b/ x) j3 }8 J* \
|