本文开始介绍命令的使用方法: 前面在介绍命令格式的时候,已经指出:完整的命令格式是:先是Dnscmd,随后是服务器名称变量,然后才是命令和参数。这里为了节省篇幅,直接从命令开始分析。% h. r l$ Q3 a7 g
命令: /Info
! Q! z# y$ s3 U 用途:利用/Info 命令,可以列出指定的DNS服务器的指定属性。显然,这需要在命令参数中指定要显示的属性。如果不指定属性,执行这一命令后列出的将是所有的属性。
& F7 ]/ B9 Z" I1 n 用法:
- [3 ^) x( E9 F dnscmd ServerName /Info [Property] " z" p( b5 N+ U
参数:
! T' @( P1 s0 P# d2 y ServerName
+ L7 S7 |8 F+ s3 {6 _8 P, c: G7 z- z$ S 服务器名称在上一篇中已经介绍过,此处省略。
& _4 A: m: @: m- {' q7 a [Property] 方括号中参数是可选的,这里是指定的、需要显示的属性。如果不指定属性,则命令执行之后将显示全部属性。
" |/ R# M2 ]7 v) C; B, n; [- @ 下面是该命令使用的一个比较完整的例子:
' i" @" G/ L# [ 在执行相应的命令后,系统会输出英文的显示信息。在下面输出的文本中的中文是由本人加入的解释,并不是原输出所带。DNS服务器的IP地址假设为172.16.12.1:5 M" U2 Y* [! r/ u
dnscmd 172.16.12.1 /info 只使用命令而不使用参数
- }% `8 v) ]+ n, f3 {! k. ]输出的信息:
4 i& J0 E$ g$ W0 IDNS Server 172.16.12.1 Information:5 i* Z, a$ [+ B. _' ]0 O( p* m+ A- R
C:\>dnscmd 172.16.12.1 /info, P: `! }8 s5 B6 K
Query result: 查询结果4 H( b6 @5 r1 A
Server info: 服务器信息: h* C2 k8 c1 f
ptr = 00074718 端口; z6 F; @2 y$ G
server name = myserver.microsoft.com 服务器名称
$ Z9 M0 ~- U7 O. E. U z) m1 s6 n version = C2000005 版本
5 K$ e5 i: Y7 R" z" B% q# G3 X DS container = c DS“容器”
/ Q" J. I3 t& \" y9 h. e- x, l3 [7 J Configuration: 配置信息 这些信息的含义请参考有关资料
" ^, k) Q5 q( }2 ] I) x* P) j dwLogLevel = 00000000
) C: Y$ q4 D+ @; k1 u, F dwDebugLevel = 00000000
! i8 N% N* r- @% a" x/ q z U dwRpcProtocol = FFFFFFFF
# Z/ F) c$ J/ O. D dwNameCheckFlag = 000000029 d2 |' f t, G
cAddressAnswerLimit = 0
+ p' K3 p1 }5 t( N' H- c dwRecursionRetry = 38 m+ r! V0 S/ S3 b" i
dwRecursionTimeout = 15: q/ n) }# Z# Q' \: \+ v
dwDsPollingInterval = 300; {/ g$ k6 l: M% o- Y
Configuration Flags: 配置标志 这些标志值就是目前该标志所处的状态。其含义请参考有关资料! @) Q- f/ a* I8 o
fBootMethod = 3 + T E& Z$ S6 M: e/ \7 z$ ~& J b6 [
fAdminConfigured = 1 8 R* t: j) \3 l' Y$ q
fAllowUpdate = 1
' ]0 _1 s3 }$ n' i: VfDsAvailable = 1
. Q/ B3 f1 D7 pfAutoReverseZones = 1
% V3 c; b j( W0 x& t* w; vfAutoCacheUpdate = 0 / `! J6 |. N$ t, }* B
fSlave = 0
0 l" U& Y I' C. [& H. R9 vfNoRecursion = 0
1 l" N+ B8 y& b3 p ~& CfRoundRobin = 1 1 x2 n( P; H0 y4 q( j
fLocalNetPriority = 1
1 o h8 `) Y% KfStrictFileParsing = 0
& b; _6 l8 [9 \0 A) R4 H! xfLooseWildcarding = 0 ! n3 i S; `. C! [
fBindSecondaries = 1
4 j7 B/ G, A/ W; [' Z' DfWriteAuthorityNs = 0
; X+ X' E, k/ VAging Configuration: q2 j+ J6 s2 M" W/ F! }; A
ScavengingInterval = 0
* _" x$ z( E( u% i5 g* DDefaultAgingState = 0
1 G0 x/ K' L! f* U' J; @6 |DefaultRefreshInterval = 168
2 j6 R# Q7 I' D4 D& d6 r H3 TDefaultNoRefreshInterval = 168 5 q/ A3 \4 Z9 G n
ServerAddresses: 0 O9 z# H& F9 ?- T S
Addr Count = 18 ^1 R6 K# Q# t2 c3 K& h" w1 [2 X
Addr[0] => 172.16.12.1( ?8 t9 J# R' K0 l; U6 \
ListenAddresses:
% k# b" M- k8 x- U$ Y0 ^0 r NULL IP Array.3 k( J. J) {# K5 I; l
Forwarders:2 ?1 k# }% H( a; m" D+ ~5 f
Addr Count = 1) T2 j1 j4 [+ _% ^
Addr[0] => 172.16.4.3# G0 U6 j# Y5 g# ?
forward timeout = 5
" E5 ?7 B( x+ N5 Y$ [9 u slave = 0
6 a. b0 j9 }, {6 rCommand completed successfully.命令顺利执行完毕
! t6 y1 u5 ?# G4 k8 Q2 Y 笔者所以将此例子完整地放置在本文中,并不为完整地解释每条输出信息的含义,而是为朋友们提供一个观察该命令输出的范本,借以获得感性认识。若你已经对上述例子有了印象,待到自己执行这个命令获得输出信息之后,肯定有“这个我曾经见过”的感觉。因为,在排除故障的过程中,哪怕仅有间接的经验,也比完全陌生强很多。
# F+ A9 |6 S1 @ 命令:/Config. o/ Z7 q) [7 Y) U, x2 E* ~6 y
如果服务器的zone没有指定,使用命令 /Config 可以重置DNS服务器的属性。如果已经指定了zone的名称,则该命令只重置zone的属性。zone的含义是区域或范围的意思。
# b) `! j# |7 S4 T8 Y& a* G4 T# `8 H
用法:
q6 A* m$ v! m/ F dnscmd ServerName /Config [ZoneName |..AllZones] Property Value
" o) Z! i2 |3 y. w; c1 B' M- j 参数- F$ E3 U8 v+ y' u
ServerName :服务器名称,意义同上
8 p* H+ s* N. X" C1 b9 |& p% H ZoneName:
% l! K8 @& j9 y( \: ^3 G: B8 ]! d, G 这个参数指定所配置的区域zone的名字,如果使用..AllZones ,则重置所有zone的属性。如果不指定zone名字,只能重置服务器属性。
7 G0 Q) e" R* ^1 }4 ~5 D Property: p1 a+ w# x, x' x$ ] g
这个参数是属性。这里所说的属性有:
+ o' U5 G7 {6 j: E" U 与服务器有关的属性:例如:
- W' D2 P/ y( t7 S4 n/EnableRegistryBoot
, s0 m2 A7 _8 X6 v/RpcProtocol. Y# @& p0 l" z6 N) w, K3 L$ A
/LogLevel
& a4 p0 c! S0 k, m' w/EventlogLevel 等等 (限于篇幅未能全部列出)/ _/ E; V& A& q8 Y4 v1 S0 j; r! p) g
与Zone 有关的属性,例如:9 A! W* a( g# n5 h5 J
/SecureSecondaries R. t: `3 ?) H
/AllowUpdate
" o$ M7 \0 d5 M1 L% V( j2 U& t$ m /Aging
: o" {) W3 ^. A; j /RefreshInterval Value: R9 O5 X* b n) {: }
/NoRefreshInterval Value. H9 S# E- r- o1 u" t$ ?
属性值:
. M% k' }! K6 B& U 属性值都是一个双字长的值,即类型为 DWORD ;以0x 打头的十六进制形式 。
+ ^) f6 A2 P- [从命令的参数结构来看,这个命令的用途是重置、实际上也可以理解为修改服务器的zone,因为命令语句的最后可以指定要重置的属性值。指定的值不同,重置的结果也就不同。
+ ~, C$ H" _5 \* @2 W 命令: /Statistics
. p. |- Y9 N6 F3 N: o* T8 u 作用:利用这个命令可以显示或删除服务器的统计数据或信息。在命令的可选择项目中,有两个每次仅能采用其一的参数,或显示或删除由你自己确定。
V& v% j0 u1 @4 A+ @ 用法:
- @5 f1 S! f6 _ dnscmd ServerName /Statistics [Filter|/Clear]7 k" e$ w j$ x0 T0 |
参数:
. S, g' Y0 p. g5 BServerName
7 U, l' }+ m7 O服务器名称,含义同上。& h2 k. }8 [- Q2 |
可选参数介绍:: M I# h, y* P9 H! E5 J! D
共有两个参数,每次只能使用其中的一个。; B& h# |6 A* q9 m9 X% ]
1.过滤(Filter)) H7 A8 R% s8 ~ V
使用该参数,可关联或过滤渴望得到的统计信息,如果不使用果料指定,则默认显示所有的统计信息。
- k$ |2 r7 ^+ ^ y( D可以使用以下的数据来指定过滤的信息,由于大部分的含义都比较容易懂,故此处不再加中文注释。不过应当注意:指定的过滤参数只能是下列之一,不可自己杜撰: ( s. d7 {) y9 w
00000001 -- Time
' ^2 w% b- ?+ ]9 G* @; k- F' S+ m 00000002 -- Query
- c* P) I' ~5 R* _2 B. ` 00000004 -- Query2
8 F# ]" j& U: { 00000008 -- Recurse
9 B# f7 n) |, {+ M; @% p 00000010 -- Master" G. _3 j- Z/ Z5 |" X: ^* \
00000020 -- Secondary5 }. O. f% q6 Y# _4 u* k# R
00000040 -- Wins y9 B p) k- h0 }
00000100 -- Update8 D$ C! Z' p$ }1 o' Q
00000200 -- SkwanSec
+ U( A1 t3 R6 K+ }" @1 _+ E. u) f1 _ 00000400 -- Ds
8 Y, {: J: y3 [' W( W# t 00010000 -- Memory. R8 l" i, R% \; l |
00100000 -- PacketMem
3 z o; b8 s! c& ^) k6 e- R7 f 00040000 -- Dbase) ?- Y) E# i5 w5 S: y
00080000 -- Records3 w& e. B8 R v, H- |; F9 n
00200000 -- NbstatMem
/ U5 \6 G; y0 L" L: r8 i2 \. I P% l 2.清除 /Clear
. x" N$ S3 i8 u! v2 P6 ~6 x1 A: G 这个参数用来清除统计信息。7 E7 S- k% }$ L- J
本来,这个命令有一个非常详细的例子,其间有各种统计信息的显示情况和格式。由于篇幅太大,无法附加在本文中。如果你有兴趣研究,请参看支持工具的帮助文档(不是windows2000的帮助文档)。
5 l8 N9 G4 m+ Y o
* g7 m9 a" G! U0 a9 ~( z% O/ }
6 l# U; Q9 F" V2 Q+ K2 }7 U2 P; m8 J" v/ r6 w
|