本文开始介绍命令的使用方法: 前面在介绍命令格式的时候,已经指出:完整的命令格式是:先是Dnscmd,随后是服务器名称变量,然后才是命令和参数。这里为了节省篇幅,直接从命令开始分析。
, h# ?) c0 o" E$ x L5 [ D 命令: /Info
* K( x3 w+ t" R3 T! e( m 用途:利用/Info 命令,可以列出指定的DNS服务器的指定属性。显然,这需要在命令参数中指定要显示的属性。如果不指定属性,执行这一命令后列出的将是所有的属性。
- p- A' M7 k+ y4 P) q6 ]& A 用法:
. g/ C) ?/ {/ U/ ? dnscmd ServerName /Info [Property]
2 s K. e) _" Z3 _2 S+ r 参数:
! ~$ G' s, K+ @ ServerName
0 P7 {3 R! [+ l8 j 服务器名称在上一篇中已经介绍过,此处省略。
6 y m; u8 C1 M [Property] 方括号中参数是可选的,这里是指定的、需要显示的属性。如果不指定属性,则命令执行之后将显示全部属性。
# i( P) p7 k; k8 A3 O 下面是该命令使用的一个比较完整的例子:" Y3 V. A7 Y" ]
在执行相应的命令后,系统会输出英文的显示信息。在下面输出的文本中的中文是由本人加入的解释,并不是原输出所带。DNS服务器的IP地址假设为172.16.12.1:0 N: q" Z9 ^0 P' t& z0 H# Y. H7 e! Y
dnscmd 172.16.12.1 /info 只使用命令而不使用参数4 a/ [, H3 Z" t2 K' Z
输出的信息:
; i( j; f* F; U: KDNS Server 172.16.12.1 Information:
9 ~7 o$ g5 N3 d9 a: HC:\>dnscmd 172.16.12.1 /info& N/ Y. a: P c9 i2 E
Query result: 查询结果; q/ w @2 E6 C. G, P8 U
Server info: 服务器信息
* i, C- s" v! s0 D ptr = 00074718 端口 A% g3 B' }# g# W3 b. E
server name = myserver.microsoft.com 服务器名称
, D5 V' n* T3 c version = C2000005 版本
- h2 B0 o( L) r" s% {9 l9 c DS container = c DS“容器”
" n7 O& r9 C/ s$ G Configuration: 配置信息 这些信息的含义请参考有关资料
4 D4 D7 I, A4 S. f8 w P! s( Z dwLogLevel = 00000000
5 E \) P% K& J$ x- c dwDebugLevel = 00000000' G! j; k0 I1 I: u; b9 ~! I
dwRpcProtocol = FFFFFFFF, b: P2 G F/ v" m- m* d
dwNameCheckFlag = 00000002
( _) b" @: s* ^1 S' g! L8 U cAddressAnswerLimit = 0
# h- r& q0 _9 F+ C dwRecursionRetry = 32 F9 T# n: ?$ v% O
dwRecursionTimeout = 15 B* |4 u' E0 Q6 R# ?
dwDsPollingInterval = 300% y. j6 f& s! h8 I& A! h
Configuration Flags: 配置标志 这些标志值就是目前该标志所处的状态。其含义请参考有关资料2 c9 g4 ~, ^) C9 X( N* t
fBootMethod = 3 : k3 ~& g! g( c- ^
fAdminConfigured = 1 / k) C O1 p( P% A! h1 O$ ^
fAllowUpdate = 1
& V7 @$ K- t2 }5 Q2 V# |: ofDsAvailable = 1
, k C' s" G6 }$ g; D3 B! E6 WfAutoReverseZones = 1
) @. ~( k7 s: afAutoCacheUpdate = 0
) _. v9 _. z4 ZfSlave = 0
/ H; K5 c$ q3 B- [: r* [fNoRecursion = 0
* R/ Y" ?# N0 f% \7 U5 } rfRoundRobin = 1 & b+ @% Y! E4 @ d2 J/ L7 O
fLocalNetPriority = 1 ! k- r7 I4 r* I' f, w* n; U9 Z
fStrictFileParsing = 0 , l1 v8 k7 y8 B* i
fLooseWildcarding = 0
% _' Q! x3 w2 `* |( gfBindSecondaries = 1
7 J& N$ D3 B/ K# u f2 NfWriteAuthorityNs = 0 5 I7 m- Y- O. B8 _. h
Aging Configuration: 5 Q2 U+ L7 k2 e9 _6 e
ScavengingInterval = 0 1 Y' v% ^2 M9 A {# [5 {
DefaultAgingState = 0 % s. l; J/ P, y. Z- C" Z& R) S
DefaultRefreshInterval = 168 / d4 l, M! Q) u, g& j2 `, F
DefaultNoRefreshInterval = 168
1 r* h% C5 U+ }& @- @* x: Z" e ServerAddresses:
% Z% E/ D) C+ [9 E1 t) y Addr Count = 1
m4 r8 K. H7 h$ O! Y$ O1 @ Addr[0] => 172.16.12.17 D) G8 `' I3 t4 h# k8 Z- M
ListenAddresses:* f( l9 H4 f* [9 _
NULL IP Array.* ]7 D4 x8 o$ j* m9 ]* q) P
Forwarders:
" Z3 E# d* y4 |+ H Addr Count = 1
% l; a2 b, l# ]- H Addr[0] => 172.16.4.3. ~' i9 R5 ?6 H" L7 N7 z1 f& y
forward timeout = 5+ N+ x: S+ L, l U! @
slave = 06 ^1 o$ q+ X( P% V9 k. s# t" S
Command completed successfully.命令顺利执行完毕
4 q& v9 a( F% v+ u2 | 笔者所以将此例子完整地放置在本文中,并不为完整地解释每条输出信息的含义,而是为朋友们提供一个观察该命令输出的范本,借以获得感性认识。若你已经对上述例子有了印象,待到自己执行这个命令获得输出信息之后,肯定有“这个我曾经见过”的感觉。因为,在排除故障的过程中,哪怕仅有间接的经验,也比完全陌生强很多。 1 {( v% C% \3 [2 c% e
命令:/Config4 f: y% ]8 V" M& z& m4 e
如果服务器的zone没有指定,使用命令 /Config 可以重置DNS服务器的属性。如果已经指定了zone的名称,则该命令只重置zone的属性。zone的含义是区域或范围的意思。" e" O7 ]/ A3 } X7 ^% u; d
* H( g9 \( R1 ~( D6 o% m
用法:# V1 ]1 r- A, ]3 l8 Z4 B) p* @
dnscmd ServerName /Config [ZoneName |..AllZones] Property Value4 j5 I! u7 S, ?& C* Z
参数, N+ T* |7 @# r# v0 g7 O5 Y1 T
ServerName :服务器名称,意义同上 8 ]: e- O6 D l) R) F4 a1 d
ZoneName:
7 G( M/ e' l2 ` 这个参数指定所配置的区域zone的名字,如果使用..AllZones ,则重置所有zone的属性。如果不指定zone名字,只能重置服务器属性。 ) |9 h3 L- d8 m
Property: * r7 _% V: {0 r+ X/ D6 P8 U1 H
这个参数是属性。这里所说的属性有:% t8 B w" c! R0 P! Z1 W2 |6 B7 |
与服务器有关的属性:例如:
# \% x: ^, g! d5 E: {* Z3 c4 S/EnableRegistryBoot1 w+ K- S4 k. d1 ], M1 Y7 h2 G' O
/RpcProtocol+ z- d$ D: C6 y" F
/LogLevel8 k! A7 [9 t# L5 f. z
/EventlogLevel 等等 (限于篇幅未能全部列出)( B- b! s6 g n' h3 @! S
与Zone 有关的属性,例如:
' D; C& v O9 `2 I/ b /SecureSecondaries8 }) l* N$ p$ B* \: M7 F; K) q) Y# d
/AllowUpdate
7 v, N8 j0 L: n2 N+ k /Aging
7 R- ^( I N& |& L /RefreshInterval Value
F3 Y* Q0 e$ o /NoRefreshInterval Value# R$ b& v, m. F T$ M/ M
属性值:
( h6 B% k3 N9 e4 n. _5 r, H! D 属性值都是一个双字长的值,即类型为 DWORD ;以0x 打头的十六进制形式 。$ K. [' m* b7 G [& g# R
从命令的参数结构来看,这个命令的用途是重置、实际上也可以理解为修改服务器的zone,因为命令语句的最后可以指定要重置的属性值。指定的值不同,重置的结果也就不同。8 W! l+ J9 C2 p. I$ Z# a; k( }
命令: /Statistics
& n0 e! M8 g; \- U: A" C+ H 作用:利用这个命令可以显示或删除服务器的统计数据或信息。在命令的可选择项目中,有两个每次仅能采用其一的参数,或显示或删除由你自己确定。3 o$ R6 r) J8 @% ]: b- K
用法:. S! ]/ |, z( T8 ^; ?8 l
dnscmd ServerName /Statistics [Filter|/Clear]
( E' i! Q! n2 k 参数:5 x* j5 [( T7 n; A6 Z. m
ServerName
, y' ^8 ` g8 V& ~6 [# D: z, v服务器名称,含义同上。
$ e; Q' e- G1 [: U! Q- s5 N. a可选参数介绍:
; M7 }+ i- v `+ E共有两个参数,每次只能使用其中的一个。
2 ^( O" |7 g, c9 D5 q( O 1.过滤(Filter)
& d8 V1 u: Z; W8 R" N% j. v2 Y) c 使用该参数,可关联或过滤渴望得到的统计信息,如果不使用果料指定,则默认显示所有的统计信息。% Y7 \- P1 I" m. b5 R* x* U, h
可以使用以下的数据来指定过滤的信息,由于大部分的含义都比较容易懂,故此处不再加中文注释。不过应当注意:指定的过滤参数只能是下列之一,不可自己杜撰:
0 m8 L% x5 x; s. j 00000001 -- Time' c" ~; ~& H9 g% K. }- H6 Q
00000002 -- Query+ i& f* z6 b* `
00000004 -- Query2! R+ C1 G! |; t! A/ r
00000008 -- Recurse8 u# U1 B" D- e) w+ t
00000010 -- Master z4 t* w! X V; g: o& E
00000020 -- Secondary
/ Y" \) W% ^) l9 p* Z0 R1 t 00000040 -- Wins
6 I- X6 F# X( J8 A: X7 S 00000100 -- Update
; P* J/ a$ M9 D" N- s3 o 00000200 -- SkwanSec
5 X1 s7 h. h2 |' Y+ A1 V0 w 00000400 -- Ds# x# ?5 w2 V- i/ g: Q' B
00010000 -- Memory: v. v* a; Q. F3 E6 B0 Y0 z0 S
00100000 -- PacketMem- Z: f1 ?0 _3 i$ \. p
00040000 -- Dbase
$ r; W" T) M1 _6 T" ^- n 00080000 -- Records; T9 P$ V( J' n! _6 \
00200000 -- NbstatMem" h4 d1 z5 {2 W% A
2.清除 /Clear
9 a; d( I F) k+ @3 K/ | 这个参数用来清除统计信息。& E+ Q2 g# o* {# K
本来,这个命令有一个非常详细的例子,其间有各种统计信息的显示情况和格式。由于篇幅太大,无法附加在本文中。如果你有兴趣研究,请参看支持工具的帮助文档(不是windows2000的帮助文档)。6 {( x3 Z2 V+ h2 X, G3 e
1 |' i; ~; `, `# u
3 h5 c+ U- s# U d0 w B+ A- g9 P% D1 E8 L2 Z( P2 [) n
|