本文开始介绍命令的使用方法: 前面在介绍命令格式的时候,已经指出:完整的命令格式是:先是Dnscmd,随后是服务器名称变量,然后才是命令和参数。这里为了节省篇幅,直接从命令开始分析。
/ s3 s, r, d! x. W8 b 命令: /Info m( v1 h. U2 z4 q! c
用途:利用/Info 命令,可以列出指定的DNS服务器的指定属性。显然,这需要在命令参数中指定要显示的属性。如果不指定属性,执行这一命令后列出的将是所有的属性。
# `7 m' z1 O$ R- [, X 用法:% m* H/ p1 |) Y& J
dnscmd ServerName /Info [Property]
; ?$ M+ A% |3 z2 a3 Z 参数:6 P8 N a4 S( b* x
ServerName
7 l# R2 H- O; Y% ^+ S2 _. ` 服务器名称在上一篇中已经介绍过,此处省略。
/ y$ a$ T" u2 F- v [Property] 方括号中参数是可选的,这里是指定的、需要显示的属性。如果不指定属性,则命令执行之后将显示全部属性。; j* W4 U# U0 t/ f
下面是该命令使用的一个比较完整的例子:
6 N9 H0 L6 z/ }2 s 在执行相应的命令后,系统会输出英文的显示信息。在下面输出的文本中的中文是由本人加入的解释,并不是原输出所带。DNS服务器的IP地址假设为172.16.12.1:2 ~% p9 O/ @4 [' Z [
dnscmd 172.16.12.1 /info 只使用命令而不使用参数
% b! u' ~% c; l3 d& s+ r0 h输出的信息:
( ]" h/ l0 i, k) ?% `" C9 BDNS Server 172.16.12.1 Information:+ ]/ ` n# E1 Y( |: W
C:\>dnscmd 172.16.12.1 /info; W8 u5 d2 _) G* e$ q9 O7 @
Query result: 查询结果+ K0 v/ Y ^% H W U. ~, q
Server info: 服务器信息
" n: t3 {' X' P/ f/ I; b) [ ptr = 00074718 端口
9 o0 `8 q8 S' N& E/ C4 F server name = myserver.microsoft.com 服务器名称$ Z$ s5 q* |3 B2 v' L
version = C2000005 版本8 {7 I6 A9 l. {4 l7 y; d; [( X
DS container = c DS“容器”" n9 k/ q! ?- U
Configuration: 配置信息 这些信息的含义请参考有关资料
/ y6 T( x( M1 I4 G dwLogLevel = 00000000; R" c( O! y9 V+ u9 b- @. d
dwDebugLevel = 00000000
# g6 p" }0 k" ^) A3 Q dwRpcProtocol = FFFFFFFF
, V' _3 D9 p, H& { G" A dwNameCheckFlag = 000000027 W/ H4 z8 ~: K7 |& ]
cAddressAnswerLimit = 04 o$ D0 r5 `% h. Y: b0 h
dwRecursionRetry = 34 r2 ]$ A+ k5 m# `9 \
dwRecursionTimeout = 15
* _+ u5 @1 L6 t& b8 d dwDsPollingInterval = 300
! P$ P+ z' N6 U, n) U Configuration Flags: 配置标志 这些标志值就是目前该标志所处的状态。其含义请参考有关资料
0 z9 ]" u7 r+ XfBootMethod = 3
# ?5 x8 ^. e+ A& a1 p* A" F* t" GfAdminConfigured = 1 0 F0 \3 o/ |; N, \: Y
fAllowUpdate = 1
7 j. @9 Z$ J& b b' kfDsAvailable = 1
$ t* H8 w- ^ G Y, v/ ffAutoReverseZones = 1
# i% u" E! w S4 {3 {) CfAutoCacheUpdate = 0 # n" f$ q6 L4 {" ]
fSlave = 0
% B6 d# Q' o/ w7 d& A- u' s) {fNoRecursion = 0 0 I; s) c8 l- T0 H! `3 Z( v3 i
fRoundRobin = 1 + K0 C% ~2 f) Q% M) ]0 l8 u
fLocalNetPriority = 1
( a9 ~4 n5 o- `: c6 Q7 o+ vfStrictFileParsing = 0 9 k1 k& v- \4 Q# }$ v
fLooseWildcarding = 0
Z, l# G4 \: p/ M/ M4 p/ vfBindSecondaries = 1
8 U: R4 ?2 k5 @5 ^2 ^ `fWriteAuthorityNs = 0
m2 o0 _- e: N/ FAging Configuration: ! L( @* _+ |6 |) D I) o
ScavengingInterval = 0
" J/ N& o; `1 cDefaultAgingState = 0 . o0 t" e6 W% F+ v
DefaultRefreshInterval = 168 : a" A% s! K0 I
DefaultNoRefreshInterval = 168
- Q0 X" C% y5 n0 a$ k5 ` ServerAddresses:
% k$ p4 P" z) s& [7 f0 H Addr Count = 1
6 k$ _) j2 ]; ~* R; A4 C Addr[0] => 172.16.12.1
: `& }. Q5 X' T) E. r: r2 @ ListenAddresses:
4 J2 J0 O! s- Y1 W2 O, @4 p. B NULL IP Array.8 d8 E, Q) v$ E6 E8 G- E
Forwarders:
2 z) s. m3 m# w' H8 V4 ?& J Addr Count = 16 r; T1 L3 U+ d
Addr[0] => 172.16.4.3
4 R$ Z/ h& t2 N7 ]! G3 e5 N' G A forward timeout = 5
) l) b+ K! |, y slave = 0, W- ]/ s4 i5 H3 i B$ V
Command completed successfully.命令顺利执行完毕
: l3 K: s e* w; N 笔者所以将此例子完整地放置在本文中,并不为完整地解释每条输出信息的含义,而是为朋友们提供一个观察该命令输出的范本,借以获得感性认识。若你已经对上述例子有了印象,待到自己执行这个命令获得输出信息之后,肯定有“这个我曾经见过”的感觉。因为,在排除故障的过程中,哪怕仅有间接的经验,也比完全陌生强很多。
/ p: b- S( y$ C/ @ 命令:/Config
D, I- T: h* _, k( @ 如果服务器的zone没有指定,使用命令 /Config 可以重置DNS服务器的属性。如果已经指定了zone的名称,则该命令只重置zone的属性。zone的含义是区域或范围的意思。4 `! ]4 \! X' S9 g& r- ^
/ M G4 H! X' A$ M9 ~
用法:, e- Q* q7 r) ~ T3 y
dnscmd ServerName /Config [ZoneName |..AllZones] Property Value' t) T3 J n, q6 k& F
参数
( R+ U! I0 l$ ?. O ServerName :服务器名称,意义同上 % ^+ u8 h: y, ?& |8 N- l% J
ZoneName:
* q8 X$ w1 W/ U' i6 H, B 这个参数指定所配置的区域zone的名字,如果使用..AllZones ,则重置所有zone的属性。如果不指定zone名字,只能重置服务器属性。 4 ^- M) H1 X& l$ Z2 C s
Property: 6 ]0 [6 m4 G' @$ }% Y
这个参数是属性。这里所说的属性有:
, i; X/ V( G7 Y 与服务器有关的属性:例如:
5 d3 k* {, w& K% `5 `7 W/EnableRegistryBoot
) ^* N9 D# _% _$ o" Q8 j/RpcProtocol6 M& {: n2 p9 {# |
/LogLevel2 f) t( B4 a' v& j, l0 `$ F1 X
/EventlogLevel 等等 (限于篇幅未能全部列出)
* X2 B* e7 l) N7 J3 u- v3 @8 O- N与Zone 有关的属性,例如:
* _5 e' w8 I$ k/ `5 O' L' X% D4 D( a- r. r /SecureSecondaries/ Y0 Z5 v# b5 F4 [) A& s
/AllowUpdate; h [5 p8 T% e# N
/Aging
9 [" T0 K) _3 j, w9 M- f /RefreshInterval Value0 a' t$ [% ^, ]
/NoRefreshInterval Value
, ?* J# u4 f; H3 Z9 i 属性值:
( H1 C0 P9 a1 ?: v* ? 属性值都是一个双字长的值,即类型为 DWORD ;以0x 打头的十六进制形式 。/ _/ N1 @$ r4 @! t! }. Z
从命令的参数结构来看,这个命令的用途是重置、实际上也可以理解为修改服务器的zone,因为命令语句的最后可以指定要重置的属性值。指定的值不同,重置的结果也就不同。" K3 _) Q, E6 I) [, S) O) L
命令: /Statistics
0 P- u/ |, j1 p, Y' P9 v* n* N, J 作用:利用这个命令可以显示或删除服务器的统计数据或信息。在命令的可选择项目中,有两个每次仅能采用其一的参数,或显示或删除由你自己确定。
* |/ o4 C0 @- |5 \' @) c( ^ 用法:* ^2 h( u9 ^# c
dnscmd ServerName /Statistics [Filter|/Clear]
1 {, O; C! ^6 A$ F& _3 A# G 参数:8 A1 F2 E) U6 q7 B. U
ServerName
; @+ ]8 G) y4 n( u u服务器名称,含义同上。
1 c8 u8 [5 w! n7 R0 ?可选参数介绍:% h4 x* c/ c6 _6 ]/ H1 k. e. f
共有两个参数,每次只能使用其中的一个。+ t. Y& W9 P9 ~
1.过滤(Filter)
$ o5 I, M( \6 \7 d0 C& z 使用该参数,可关联或过滤渴望得到的统计信息,如果不使用果料指定,则默认显示所有的统计信息。# K A. m$ [/ O4 B9 O
可以使用以下的数据来指定过滤的信息,由于大部分的含义都比较容易懂,故此处不再加中文注释。不过应当注意:指定的过滤参数只能是下列之一,不可自己杜撰: * U {# K" r$ t% M* r
00000001 -- Time
% p ^+ ^3 V7 s. n _ 00000002 -- Query
L" X. Z2 W& b, B 00000004 -- Query20 W3 {) L2 A; @) Q6 `, u
00000008 -- Recurse
( s3 v2 p7 {; z& W: p0 s; k 00000010 -- Master) e3 A0 d {% b9 }4 r
00000020 -- Secondary
- s! @& C) [/ T- {) g 00000040 -- Wins) ?6 d. }5 c# V8 [
00000100 -- Update8 X* y3 ~1 O! V2 Z$ A* J/ X
00000200 -- SkwanSec
' V4 w; H/ x1 m% U% H2 R" g3 p/ R 00000400 -- Ds
* W/ m9 U7 i$ ~3 a# L1 ] 00010000 -- Memory/ R; c- |2 k. b. ~. G' c& v3 q" Y4 _% L
00100000 -- PacketMem! P9 S5 L m5 X- O* \7 }
00040000 -- Dbase
; c o9 W6 x4 j 00080000 -- Records
" P' V) f5 D, D( N# R8 Y. q* h. M$ V 00200000 -- NbstatMem
6 L3 r; l, p# f# }, D 2.清除 /Clear
' [) W$ N P; y. T. W0 i 这个参数用来清除统计信息。
/ ~) d6 C c! h" s1 k 本来,这个命令有一个非常详细的例子,其间有各种统计信息的显示情况和格式。由于篇幅太大,无法附加在本文中。如果你有兴趣研究,请参看支持工具的帮助文档(不是windows2000的帮助文档)。- P$ s6 `9 q1 H. U9 @
6 Z0 v1 `8 n/ m5 U# G4 b& N1 e
; h4 H* T1 @$ x( W$ k+ Y: X: ~0 ]: ?& |: m/ ?% P: c }; y3 ^% c4 l& S* u
|