本文开始介绍命令的使用方法: 前面在介绍命令格式的时候,已经指出:完整的命令格式是:先是Dnscmd,随后是服务器名称变量,然后才是命令和参数。这里为了节省篇幅,直接从命令开始分析。$ t' l# `! s; R/ z* g! Z2 \3 b
命令: /Info ! ~ s/ V# a, J6 y# M
用途:利用/Info 命令,可以列出指定的DNS服务器的指定属性。显然,这需要在命令参数中指定要显示的属性。如果不指定属性,执行这一命令后列出的将是所有的属性。
1 r2 j' [6 q9 O* |2 A7 K9 n& S 用法:8 @2 m3 q+ V J. S0 ]2 G
dnscmd ServerName /Info [Property]
+ ^' |2 V) ^# |5 b. h; G: F 参数:
) G2 y" {% e! S: v5 @; _ ServerName
0 V) ~$ @, ~7 u+ f8 u2 f 服务器名称在上一篇中已经介绍过,此处省略。 5 _# ?) L; L: H6 M
[Property] 方括号中参数是可选的,这里是指定的、需要显示的属性。如果不指定属性,则命令执行之后将显示全部属性。
- j" J0 p2 H9 w8 U' [ 下面是该命令使用的一个比较完整的例子:
+ b8 H! w+ l5 j4 Z* G+ ? 在执行相应的命令后,系统会输出英文的显示信息。在下面输出的文本中的中文是由本人加入的解释,并不是原输出所带。DNS服务器的IP地址假设为172.16.12.1:4 b+ V" r" j/ e) {9 J- }
dnscmd 172.16.12.1 /info 只使用命令而不使用参数+ B& {- V7 ]- ~" q
输出的信息:
& a* K* u, Q t9 M, B7 vDNS Server 172.16.12.1 Information:
' r( N7 i; u; }5 pC:\>dnscmd 172.16.12.1 /info2 U2 d+ P4 b1 ~0 D" I2 Z+ S7 }. ?3 ^
Query result: 查询结果
" y: X. V1 K9 T! d& ~ u+ WServer info: 服务器信息; i. V2 l2 U* ^% D+ p9 B
ptr = 00074718 端口2 x; A: P! _9 W. h
server name = myserver.microsoft.com 服务器名称
. t& g7 G/ U! c# R version = C2000005 版本/ n/ W; Z D: q; ^6 U# S2 F
DS container = c DS“容器”% v8 m+ V N; G" e# Q2 S
Configuration: 配置信息 这些信息的含义请参考有关资料! \7 ?. E8 C2 K' N3 M( S
dwLogLevel = 00000000
' ]& k* z5 m9 d dwDebugLevel = 00000000! H) b% Q; a( J/ C( D( |
dwRpcProtocol = FFFFFFFF
2 {5 x: J$ X$ |) O2 C( q6 S, { dwNameCheckFlag = 00000002
7 i$ t- l. r8 N+ R% W O4 a, i" u3 V cAddressAnswerLimit = 0
1 S: M$ m9 O! | dwRecursionRetry = 31 L' ~; u& N W* _; d# g
dwRecursionTimeout = 15* z/ a' Q* l; J3 X5 C# q& f$ n7 ~; [
dwDsPollingInterval = 300
, k- `( f+ Y6 K) g; d Configuration Flags: 配置标志 这些标志值就是目前该标志所处的状态。其含义请参考有关资料
& h! C- k' b" n9 xfBootMethod = 3 ) n, W/ Y) H0 t ^! B& |' v
fAdminConfigured = 1
: U9 |, B( {5 K" r% I5 d4 c9 j# hfAllowUpdate = 1
# A$ W7 y9 Q- f; z8 I5 q9 cfDsAvailable = 1
) E5 w; G! n( ?1 QfAutoReverseZones = 1 9 i5 H, A- v c: C$ P1 x2 ?2 I7 `
fAutoCacheUpdate = 0 ) \2 k, F" O) I$ J) @
fSlave = 0 & W$ X8 e, v# B6 d" {9 }" J
fNoRecursion = 0
9 l( T/ ~. |- O: ofRoundRobin = 1 ' P1 u0 l. \5 h* L! P% F( d
fLocalNetPriority = 1 0 v- E7 o% e! A5 Y! w8 v/ n# S
fStrictFileParsing = 0 $ K' W+ c9 Z( f ~) w+ ?0 n, @7 n
fLooseWildcarding = 0
+ k! z |; p8 y' p+ }9 s- S2 X8 efBindSecondaries = 1
2 f! r; @$ e- y& { J4 p6 zfWriteAuthorityNs = 0 9 W* y2 r8 f8 A
Aging Configuration: 4 d L# P8 U5 V+ S, e; l7 ~
ScavengingInterval = 0
U) Z; t$ L! y2 `, i- wDefaultAgingState = 0 & r9 }1 F& ^+ q( @0 g* E
DefaultRefreshInterval = 168 & Z' l: W" H4 L* `! K
DefaultNoRefreshInterval = 168 ! Y8 a7 C U9 H& H& V# K
ServerAddresses: 5 P( R8 A. x0 M4 f8 }4 a
Addr Count = 1: b$ n ?3 e8 j' `1 @1 `
Addr[0] => 172.16.12.10 B9 C' L9 Z2 K* f: `
ListenAddresses:
& Y5 Y- `0 M, ^ NULL IP Array.1 x6 F$ F1 m7 B; {# m0 \
Forwarders: [# w7 a, ~" G: H7 E! T
Addr Count = 1
' p C! \9 \ B. f1 W2 u Addr[0] => 172.16.4.3
# X. x& _4 D2 ]2 _ forward timeout = 5
l. A, B5 d/ H+ f- n% | slave = 09 C' M, F6 q8 Q3 @5 k4 y
Command completed successfully.命令顺利执行完毕
+ E# p1 S8 w B% e) k1 T! _ 笔者所以将此例子完整地放置在本文中,并不为完整地解释每条输出信息的含义,而是为朋友们提供一个观察该命令输出的范本,借以获得感性认识。若你已经对上述例子有了印象,待到自己执行这个命令获得输出信息之后,肯定有“这个我曾经见过”的感觉。因为,在排除故障的过程中,哪怕仅有间接的经验,也比完全陌生强很多。 " q5 s, n3 W9 y- `
命令:/Config
: f. \# h- z0 e. @ 如果服务器的zone没有指定,使用命令 /Config 可以重置DNS服务器的属性。如果已经指定了zone的名称,则该命令只重置zone的属性。zone的含义是区域或范围的意思。/ z6 [+ Z6 b$ u. s# E: u
& X0 w8 a- z& x) L. K, H8 B
用法:
, \- g0 ?% ]0 O4 z. ]: l4 E dnscmd ServerName /Config [ZoneName |..AllZones] Property Value R$ @* [; T" T6 Z* a) P6 o' ~
参数$ a h; @) I9 ^, p& c% g
ServerName :服务器名称,意义同上 + R6 b% a& O9 t. G$ _) ^7 h, D% l# [
ZoneName:
+ K& \) y/ W! O6 w 这个参数指定所配置的区域zone的名字,如果使用..AllZones ,则重置所有zone的属性。如果不指定zone名字,只能重置服务器属性。 K/ t& A0 t2 ~! D. [* C
Property: & k( ^- k7 c- F8 ~( t
这个参数是属性。这里所说的属性有:
2 _$ q/ \: c8 d4 y6 f 与服务器有关的属性:例如:
7 t8 T1 q) f; T6 L0 f# U/EnableRegistryBoot
& m* t6 o0 Y2 Y4 g S/RpcProtocol
9 g$ d* E/ F/ P k/LogLevel+ @! @4 L, |! c2 ]; A: |
/EventlogLevel 等等 (限于篇幅未能全部列出)
0 m0 k5 z& _1 r与Zone 有关的属性,例如:
2 g- m* ]! o8 v% n /SecureSecondaries
- A+ v2 @7 R* U, i! q' O /AllowUpdate
* y' w" W* ^+ C, ~1 [# O. A8 l /Aging7 a4 c% I6 g4 R9 J9 x7 W
/RefreshInterval Value: D1 f) z6 o& z% A* |& F2 ^, z* W
/NoRefreshInterval Value3 O# [9 t% S' F: V
属性值:
$ B3 A0 ] M% v7 \ 属性值都是一个双字长的值,即类型为 DWORD ;以0x 打头的十六进制形式 。
- _& c9 Z2 V; O. h8 o2 k从命令的参数结构来看,这个命令的用途是重置、实际上也可以理解为修改服务器的zone,因为命令语句的最后可以指定要重置的属性值。指定的值不同,重置的结果也就不同。
5 W0 o+ m4 R) y3 ^3 v6 ^/ W 命令: /Statistics
' b: o% |) v: Q. U% X' V3 Z o 作用:利用这个命令可以显示或删除服务器的统计数据或信息。在命令的可选择项目中,有两个每次仅能采用其一的参数,或显示或删除由你自己确定。
! b9 T( f4 F9 Z: x 用法:, `1 z' u% I9 D- f9 b
dnscmd ServerName /Statistics [Filter|/Clear] f" ~: p- M# X# h( d) Y
参数:
) |' |1 e6 D! UServerName 0 f. n! X* |1 [
服务器名称,含义同上。* E0 I5 L* L" X
可选参数介绍:- C1 M& ^- }: C/ @
共有两个参数,每次只能使用其中的一个。
' Y9 V3 S0 G9 l3 b6 R 1.过滤(Filter)5 c! h- z' c" R, f0 d( H
使用该参数,可关联或过滤渴望得到的统计信息,如果不使用果料指定,则默认显示所有的统计信息。
, ~8 ?- w9 r1 t7 ], K可以使用以下的数据来指定过滤的信息,由于大部分的含义都比较容易懂,故此处不再加中文注释。不过应当注意:指定的过滤参数只能是下列之一,不可自己杜撰: 6 h) f# j3 L7 {) z* \" F
00000001 -- Time l8 R* d+ k1 t7 g2 u2 R( G
00000002 -- Query1 _* i1 O+ {. m0 A7 X
00000004 -- Query2$ B# ^3 u( C3 \6 }
00000008 -- Recurse
, K$ P0 R! A% U6 c' r% i 00000010 -- Master, F# _' U1 B( p3 C% ]+ k
00000020 -- Secondary
! {+ |$ \9 X/ _3 F 00000040 -- Wins
- R9 d6 L) ?/ Y% d7 o& Y9 F7 k 00000100 -- Update
/ R1 P, E9 j: v# T+ h7 y 00000200 -- SkwanSec; Z8 l1 r- I6 G
00000400 -- Ds2 I! \, H& ^( A
00010000 -- Memory
' L" W7 q# B4 ` 00100000 -- PacketMem
3 O5 u+ q+ e" q* N+ V) M& Z 00040000 -- Dbase" c. c6 G% X. N# U- @$ ~6 C
00080000 -- Records0 i+ i: m: {" Y/ D9 }4 u5 \
00200000 -- NbstatMem: v/ X( h0 s3 w9 f. c- W0 r
2.清除 /Clear
6 Z$ U/ L3 a. {" E4 ]! }9 N' ^ 这个参数用来清除统计信息。7 U. q( C2 v# ^2 G
本来,这个命令有一个非常详细的例子,其间有各种统计信息的显示情况和格式。由于篇幅太大,无法附加在本文中。如果你有兴趣研究,请参看支持工具的帮助文档(不是windows2000的帮助文档)。4 d j6 [' X% v2 p2 }" V9 q6 h
: w: I, G$ W* l, X4 p
9 X7 T2 |- D9 f$ _# z
. i7 `2 ]8 ~- B- r9 ~2 g/ Q |