本文开始介绍命令的使用方法: 前面在介绍命令格式的时候,已经指出:完整的命令格式是:先是Dnscmd,随后是服务器名称变量,然后才是命令和参数。这里为了节省篇幅,直接从命令开始分析。
3 a) m/ Z: v9 r D# C- Y 命令: /Info 7 B9 S% n2 G3 T8 f/ _
用途:利用/Info 命令,可以列出指定的DNS服务器的指定属性。显然,这需要在命令参数中指定要显示的属性。如果不指定属性,执行这一命令后列出的将是所有的属性。* n/ l+ y5 o% ?: M; S1 X
用法:7 P4 S6 {' e) g; l0 N& A2 p3 X
dnscmd ServerName /Info [Property]
: v u Z# w& c J: Y 参数:
2 w& W& ?4 }( V; t$ k8 c ServerName 7 w' o) W, S, E# K: D
服务器名称在上一篇中已经介绍过,此处省略。 & i* a3 ?4 g9 A
[Property] 方括号中参数是可选的,这里是指定的、需要显示的属性。如果不指定属性,则命令执行之后将显示全部属性。
* U$ ~5 v/ j9 H% y2 Z9 L. U8 h 下面是该命令使用的一个比较完整的例子:5 @0 S0 M# G9 T% \: t! q
在执行相应的命令后,系统会输出英文的显示信息。在下面输出的文本中的中文是由本人加入的解释,并不是原输出所带。DNS服务器的IP地址假设为172.16.12.1:
% X& |; O* r Y+ H9 odnscmd 172.16.12.1 /info 只使用命令而不使用参数7 ^9 P- A/ _( E/ |3 h/ q) ?" W
输出的信息:
T% t V! J: f6 C0 [' PDNS Server 172.16.12.1 Information:
( y" k1 {! w9 T- p9 K& e* KC:\>dnscmd 172.16.12.1 /info
6 M4 w4 b7 b, g2 S! FQuery result: 查询结果
* ?- H! J3 |& J& ]Server info: 服务器信息
' N- e2 w/ r2 _ ptr = 00074718 端口
1 v* _1 G+ a0 s5 }% F server name = myserver.microsoft.com 服务器名称
: p( t1 R+ }3 z' K. I version = C2000005 版本; F# f( j. |$ W* }! u
DS container = c DS“容器”, J+ L# l3 b$ w( \$ Y! b
Configuration: 配置信息 这些信息的含义请参考有关资料& S7 Z0 S( e% m N/ f
dwLogLevel = 00000000! X7 z) H" n9 }9 w! H( T1 b
dwDebugLevel = 00000000
* Y5 C0 Q3 a* _; T( ? dwRpcProtocol = FFFFFFFF
) U7 B; l q9 v s0 R dwNameCheckFlag = 00000002
' n& N/ K$ X0 U& u4 X; c) w cAddressAnswerLimit = 0$ m; E( E* r6 j' O1 M. D
dwRecursionRetry = 3
( |3 ^ m$ A; u7 @- w. u2 g3 W dwRecursionTimeout = 15
8 V- V ?) Q s* m dwDsPollingInterval = 300
! w" s- O+ j/ {* A: _" I5 z Configuration Flags: 配置标志 这些标志值就是目前该标志所处的状态。其含义请参考有关资料4 g6 A/ X. `& l5 h8 t( l' r* m
fBootMethod = 3 : y- Z1 Q5 x- f% p
fAdminConfigured = 1
, ~. U" p& ~: i) {fAllowUpdate = 1
! x; J5 l9 p7 e- i0 kfDsAvailable = 1
4 R" {6 F+ \, K3 FfAutoReverseZones = 1
/ T" \% a9 x$ u x% BfAutoCacheUpdate = 0
8 S% k+ [+ k( `" H& ?- E+ ?fSlave = 0
7 _8 K$ ^% k8 D3 yfNoRecursion = 0 1 T4 K# i# g: ^: {* q
fRoundRobin = 1 ) u# }, a3 w7 B# Z- R
fLocalNetPriority = 1
* W: T3 y- h: m' z, ]0 B# SfStrictFileParsing = 0
& Z. w& d2 p* W) S* K. HfLooseWildcarding = 0
! w$ ?6 c6 _) r( {& q' ifBindSecondaries = 1
/ W. I3 |) D5 [) E8 P8 LfWriteAuthorityNs = 0 4 w# I4 \& N' a: w4 c* \9 @4 f' x) B
Aging Configuration: * C# p2 ]* e6 g5 q5 w& x
ScavengingInterval = 0 7 ~% p: u# |+ {: _: _
DefaultAgingState = 0 . A& h2 W! S8 b0 U
DefaultRefreshInterval = 168 $ F) F+ G1 E5 @: I
DefaultNoRefreshInterval = 168 - B2 n; |' @) B7 x: }8 I
ServerAddresses:
4 i5 E7 v0 o9 z6 A p: \: ~5 j Addr Count = 1
% Z' [- }0 W4 O4 X9 _: I, z* Z Addr[0] => 172.16.12.1
/ p% s2 }1 N5 q ListenAddresses:3 n$ y, m9 k. @! U
NULL IP Array.( G. f Z4 U! q) f, e) O
Forwarders:4 k% k: r3 F* G% b9 B
Addr Count = 1
- u3 x9 A! h# y C* d# | Addr[0] => 172.16.4.3
; W* j1 e3 T/ \- S6 v0 { U forward timeout = 5
; Z% Z- {2 y4 B- m% c6 e' V, x( I slave = 0" R$ @: o# z$ h2 t* t
Command completed successfully.命令顺利执行完毕 - ?4 w2 I9 b! Z$ V
笔者所以将此例子完整地放置在本文中,并不为完整地解释每条输出信息的含义,而是为朋友们提供一个观察该命令输出的范本,借以获得感性认识。若你已经对上述例子有了印象,待到自己执行这个命令获得输出信息之后,肯定有“这个我曾经见过”的感觉。因为,在排除故障的过程中,哪怕仅有间接的经验,也比完全陌生强很多。
: ?* t6 V; b! ?/ a5 K5 T. w* d 命令:/Config3 ~, Z' j4 F8 p3 U' s
如果服务器的zone没有指定,使用命令 /Config 可以重置DNS服务器的属性。如果已经指定了zone的名称,则该命令只重置zone的属性。zone的含义是区域或范围的意思。- t- E, V: [2 j% [1 g+ j/ v |: x
3 Y9 k& }# s5 [: ]2 Q8 P( X 用法:
, B$ ~3 b( K% }" } dnscmd ServerName /Config [ZoneName |..AllZones] Property Value
, M: u5 g9 k& B+ o# o* s2 S" p 参数) E3 b4 F: h) d' o* r) T) [
ServerName :服务器名称,意义同上 9 H7 S7 z& o. I$ \: x- A) x
ZoneName:
8 `$ I6 n) S0 {0 R8 V: R' c/ } 这个参数指定所配置的区域zone的名字,如果使用..AllZones ,则重置所有zone的属性。如果不指定zone名字,只能重置服务器属性。 , i( D8 k: L9 p& `$ [. h$ U
Property: % q% J6 b* ~) v) m
这个参数是属性。这里所说的属性有:5 \' J S2 N9 U7 b a
与服务器有关的属性:例如:7 ^& ^. t0 v1 v6 Y. r) E
/EnableRegistryBoot
$ r( e9 C' C4 m$ }$ W- z, v/RpcProtocol
& R8 U, }( N2 K( I+ p/LogLevel
6 D, h' O7 s g, o' R; r7 R9 ^/EventlogLevel 等等 (限于篇幅未能全部列出)/ {5 h7 B& w5 e; O9 ~
与Zone 有关的属性,例如:
) n! D! D& b& w" X% e6 i /SecureSecondaries+ j* \# K' \. F" M
/AllowUpdate
5 o9 {! n6 t6 M9 n& g /Aging. c7 S+ k* v7 M* s0 D
/RefreshInterval Value6 @8 }' m7 Y2 C" |% x+ [( w
/NoRefreshInterval Value- @. b5 r, X# u* k
属性值:" K1 b9 R& j( }' z( [ C: l$ r
属性值都是一个双字长的值,即类型为 DWORD ;以0x 打头的十六进制形式 。9 ]7 U0 i d3 O6 {" B! _7 r
从命令的参数结构来看,这个命令的用途是重置、实际上也可以理解为修改服务器的zone,因为命令语句的最后可以指定要重置的属性值。指定的值不同,重置的结果也就不同。1 c, a1 m8 p* u) a" t+ X- o
命令: /Statistics1 i7 ~2 |) d; o
作用:利用这个命令可以显示或删除服务器的统计数据或信息。在命令的可选择项目中,有两个每次仅能采用其一的参数,或显示或删除由你自己确定。
/ l5 B! p, f+ X3 r d& } 用法:3 W/ Z3 f- @' f8 W9 q
dnscmd ServerName /Statistics [Filter|/Clear]
: X6 A1 ]8 D' ~4 G" q 参数:
/ `7 r6 J2 U n* ]- nServerName ! [! V2 w! Q% w, f) `
服务器名称,含义同上。6 L7 u! _- \6 B# t
可选参数介绍:
8 o, i( f6 _. ^% A% ]共有两个参数,每次只能使用其中的一个。1 Z! t$ ~0 w9 h
1.过滤(Filter)6 T* T* F" u1 V* j- a, j1 m& d& Z, E
使用该参数,可关联或过滤渴望得到的统计信息,如果不使用果料指定,则默认显示所有的统计信息。
0 a3 y7 D3 |% X可以使用以下的数据来指定过滤的信息,由于大部分的含义都比较容易懂,故此处不再加中文注释。不过应当注意:指定的过滤参数只能是下列之一,不可自己杜撰: , q4 }& r ]1 N6 ?
00000001 -- Time
8 M( e7 m# z+ K, r* C9 r- v h 00000002 -- Query
5 A, r0 @1 C1 t% a 00000004 -- Query2
8 [+ R4 `1 H) e9 F 00000008 -- Recurse
( h5 R9 w* k. V( I, r' s2 f6 q 00000010 -- Master
; ?. @; W C; A; h$ ^ 00000020 -- Secondary
0 U" v8 C, i! |8 T7 V! U% P 00000040 -- Wins& q$ J+ g# \, a/ ?6 v) E
00000100 -- Update
' d/ J$ G4 g/ Z! Z8 N 00000200 -- SkwanSec- u/ Q4 g! y: V; S+ R, A
00000400 -- Ds0 q) K; A% Q. L u, A! q1 X
00010000 -- Memory' O5 E- b8 ]1 i, [; F( w" ^4 N
00100000 -- PacketMem
% h+ ~5 u9 {& W9 G 00040000 -- Dbase6 \" ^/ {6 `! Z
00080000 -- Records2 r2 K" s n, f/ P2 ?
00200000 -- NbstatMem
( S, l. h' `3 z' f 2.清除 /Clear 5 Z1 G+ `7 `9 A ?0 z, e' d1 K- u+ n
这个参数用来清除统计信息。6 U& A3 T+ U, ^* W' V6 v- \" ]% d# v
本来,这个命令有一个非常详细的例子,其间有各种统计信息的显示情况和格式。由于篇幅太大,无法附加在本文中。如果你有兴趣研究,请参看支持工具的帮助文档(不是windows2000的帮助文档)。
' A2 F/ W5 I5 |4 O# B5 ~
; i1 W& J9 U4 s+ I% M1 J7 i9 Q / v8 X) E' S( ^( o! f
) g& A o8 I, F8 L& V. x* |% V
|