- 註冊時間
- 2014-5-14
- 精華
- 在線時間
- 小時
- 米币
-
- 最後登錄
- 1970-1-1
累計簽到:278 天 連續簽到:1 天
|
在阅读本文的时候,请严格按照故障现象进行比对排错!
9 F* c0 r% \& T/ Z2 ?; H! s& a, v; g+ T' N0 @# f4 J
如果涉及到注册表操作,请务必事先备份相关注册表项,并新建还原点。
+ y1 U' ?1 Z, u! E
: }8 l3 f' ~8 v! ]- M( U如果系统无法顺利启动,请按Reset键重新开机,然后按F8,在Windows高级启动菜单上选择“恢复到最近一次的正确配置”菜单项,这样就可以先前的HKLM\SYSTEM\ControlSet00n覆盖错误配置的CurrentControlSet(ControlSet00n中的n由HKLM\SYSTEM\Select的LastKnownGood键值指定)。
* f6 e( h1 S! w3 P0 V1 ~0 P
% M& r2 a# ^/ ^* |- N0 h E错误2:系统找不到指定的文件5 M0 M/ @3 V. y0 b! \7 C. L' g
0 `! Q# p$ d& W% J
1.故障现象, R( l0 ]- h: S, i7 k
3 u; z6 K$ }4 y) L6 G; B尝试在“服务”管理单元窗口手动启动服务是,系统提示“错误2:系统找不到指定的文件”(Error 2: The system cannot find the file specified.),如图1所示。
' |# Z" T' D" i% l7 P! M( v
4 A J) ~1 k0 w/ I3 A# p0 l) f9 C
& B. y+ p+ M3 i0 P* L, L Z$ U2.原因分析
. d6 C! X& s9 \) }' w6 U# p5 ~/ B G
两种可能:% H5 ? B/ P1 ~# k; h2 H) c. m- m
) B! X1 n- z) R w0 M! _(1) 服务的可执行文件丢失或者被破坏。
9 `9 z. j! `: ]* K' J: w5 {# e3 s$ ?2 T9 o, y- g- n3 U2 f
(2) 服务相关注册表键值ImagePath的数值数据被篡改,导致SCM无法加载服务的可执行文件。
& G) ^& X, k9 t( I2 r% @" r0 @9 Y: ^3 y' a7 d
在“服务”管理单元窗口里可以看到每个服务的可执行文件路径,请仔细检查如图2所示的可执行文件所在路径,如果和参照系统的正确配置不符合,说明注册表键值ImagePath的数值数据有误。如果此处的配置没有问题,则说明可执行文件丢失或者被破坏。
0 h' f! _6 k: D" v; |
2 v) ` M+ e' R- U2 C; B% p# Z
3.解决办法% L; a; P% N) b' |
3 G4 u9 x+ q4 m) K- Y, H* [: N# `以“Task Scheduler”服务为例。" q: Y0 W, _5 e( H1 b
# K0 z) `/ O5 r: j3 j如果注册表键值ImagePath的数值数据被篡改,可以定位以下注册表项:: P; m' h. B# a- x# P7 t% h$ \
" ]1 S: g2 B; n4 q! C0 fHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule
. X: ]2 _& w2 L; O" p; t* L/ t* l4 s
在右侧定位到ImagePath键值,将其数值数据修改为正确的值,并重启系统。
4 b# [ ~* o+ _& J5 Y
" m- ]7 L* U: L, x5 ?' [0 _或者借助sc命令:: n6 U9 J- o% ]2 [. Q; n
* g3 W+ x% ]1 o: q3 U& Rsc config Schedule binpath= "%SystemRoot%\System32\svchost.exe -k netsvcs"( x7 E* R6 U1 |: X
8 ]: w; T: R0 R9 C如果是可执行文件丢失或者破坏,请用正确的副本进行替换,并重启系统。对于本例来说,可执行文件是svchost,如果该文件被破坏,系统将无法正常运行。
, T- {" W+ h+ p# [7 _4 h2 u1 r+ A4 s* B) ?0 M" W& o8 n$ n
错误1053:服务没有及时相应启动或控制请求
7 E2 W$ e8 L3 U. w4 w
2 F! Q6 O4 J8 b r# ^7 L1.故障现象
* i3 E/ g8 s: N
& S5 _, T9 {2 e( `/ H尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1053:服务没有及时相应启动或控制请求”,如图3所示。* r) I2 q, H3 t: o6 s% Z& i0 p( R
. ^$ D o' l2 A a8 m& n5 u$ z3 K3 e" E
3 Z' c- B) D: r7 O! t2.原因分析: R: o q) J& _
8 W" _$ H; R- X; E' m, N' c3 G
如图2所示,可执行文件的附加命令参数配置有误,会导致问题。
% s. o1 M# H6 F- z# m
' Z L g5 Q# @% W' L9 l6 G; ?+ r: }3.解决办法
; }! f0 |2 \5 ]) n! u: T
* `3 H3 P2 E# |# @3 t; d参照上述的方法,用sc命令或者注册表编辑器,对附加的命令参数进行排错。 `/ g& C* z4 r1 R
/ B6 K) A- v7 |错误1083:配置成在该可执行程序中运行的这个服务不能执行该服务
8 s4 h( o( e9 [
/ m$ j% y8 O, w9 H' ^3 Y: p( r5 S3 U1.故障现象
* D$ p9 r) R, @! @+ q @- D$ E) p+ E( Y& w1 G7 x
尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1083:配置成在该可执行程序中运行的这个服务不能执行该服务”,如图4所示。% _1 X- r$ @; d0 ~0 }
4 k% A- F$ x, H
( i1 ]& `, K8 K9 a5 _5 {8 q6 ], K; m- Q* p j, [: e
2.原因分析
) n2 d2 v& T$ e: Y
8 v1 T" t0 q, ]. m/ O" t/ I6 S7 C该故障通常在由svchost服务宿主进程所启动的服务上发生。大家知道Windows XP SP2最多可以启动七个svchost进程实例(实际上启动六个进程实例),分别负责启动一组服务。每个svchost实例所负责启动的服务由以下注册表项决定:& J. t* O2 z% \; g5 ~
: K: E f( m1 N# d# oHKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost
7 y0 a8 W% u0 h4 v, E
1 Z7 T# I% [! l6 w6 O其下共有七个键值:DcomLaunch、HTTPFilter、imgsvc、LocalService、netsvcs、NetworkService、rpcss和termsvcs。每个键值都定义了一个或者多个服务,也就是对应每个svchost进程实例所能启动的一组服务。
% q1 F$ X" Q; ?; }! d5 k' z% i o4 v& m2 v% q( S5 _
本例中“Task Scheduler”服务的可执行程序参数是“svchost.exe -k netsvcs”,对应的svchost进程在启动该服务之前,会先到HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost下的netsvcs键值里查找是否有该服务的定义,如果没有,就会出现该故障现象。0 h% U4 Y0 m8 h+ j
: r6 H! h! Z$ \4 D! c4 q" P9 F
3.解决办法
. n; a5 H$ C9 n8 h" F
r" o0 F( u/ d8 a: Z |7 m* M" B很简单,首先打开该服务的属性对话框,查看其可执行程序的命令参数(本例是netsvcs),如图2所示。* _6 _' [1 e2 J& R; F0 W, n
8 G( B! ]6 p) |' ^, a, G$ S4 p然后进入以下注册表项:: D/ g) _9 T7 @& G! f! l! l4 v
b2 r: N" g2 ]; r2 G
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost- p d" `# L, A* C" j5 S# k; Q2 X' |
6 w5 j% L: w* n
在右侧定位到对应的键值,本例是netsvcs,在其数值数据里添加该服务名即可,本例是Schedule,如图5所示,并重启系统。
1 E% r5 `% h1 X+ _4 ^5 E6 g1 m
1 w+ ?" `) E. I2 z4 w. x- Z! ?9 |/ [
" m. |2 h) E/ D" I9 x$ j) \! U8 A
5 m! z" j7 O( M" F% [提示 为什么通常只会启动六个svchost进程实例?都是TermService服务惹的祸!TermService(Terminal Services)这个服务非常另类,不仅仅出现在DcomLaunch组里,同时还独立出现在termsvcs组里,然而在“服务”管理单元窗口里,该服务的命令行为“svchost.exe -k DcomLaunch”,也就是说实际上并没有一个svchost进程实例负责启动termsvcs服务组!& W7 u) P @, I/ O4 A, }
# r+ y, k9 D. l* J8 f; i; N `& ~8 T: o
错误126:找不到指定的模块: n7 `6 m" V* F
6 ~. C% z( U% l+ F7 I# z
1.故障现象
5 g \6 `4 Q4 h* m& e% R- F8 z6 P: V# K3 m6 W' ?
尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误126:找不到指定的模块”(Error 126: The specified module could not be found.),如图6所示。
4 z( e2 e% N+ X, z1 ^' g. U& G4 O$ d( ]- M, K
) U/ Z0 ^0 P* A& `
2.原因分析 Z( {" Z S) }9 ?& d. `; P
7 W4 I* p1 M6 o该故障通常在由svchost服务宿主进程所启动的服务上发生。这一类的Windows服务,其实是以dll模块的形式插入某个svchost进程。如果该dll文件被破坏,或者注册表的相关键值被篡改,都可能导致问题。. s7 \" a0 F$ N6 Z `9 o/ L- q
# g' ]; g5 n6 [2 m
这类服务所对应的Dll文件,是由HKLM\SYSTEM\CurrentControlSet\Services\ServiceName\Parameters注册表项下的ServiceDll键值所定义的(此处的ServiceName是指服务名),如果该注册表键值出错,或者对应的Dll文件被破坏,就会导致这个问题。
7 e- g9 s! w# T2 T6 H- ?8 z, v5 K; w2 D3 K8 x- |+ b; }3 A% u
在微软新闻组里有不少网友抱怨无法打开“磁盘管理”窗口,寻根溯源发现是“Logical Disk Manager”服务无法启动所导致。其中有一个case是系统被木马PCShare所感染,木马修改了“Logical Disk Manager”服务的注册表键值,把HKLM\SYSTEM\CurrentControlSet\Services\dmserver\Parameters注册表项下的键值ServiceDll的数值数据指向木马的文件“%SystemRoot%\System32\drivers\Ybfbqufe.sys”,尽管后来利用杀毒软件杀除木马,但是杀毒软件未能处理被木马篡改注册表键值,导致无法打开“磁盘管理”。' g0 }* S/ }3 A
3 e) Y. r- e+ U$ b7 M" J注意 不要将该故障和“错误2:系统找不到指定的文件”相混淆!8 n' x9 [/ B2 C, X! e' ?( |
8 {5 O& j. b9 C: ?
3.解决办法) d' _; u" Y& L" B! H) V
3 \. H5 G, x' L4 g对于“Logical Disk Manager”服务的问题,在以下的注册表项:
/ l: W; w8 a3 {% _+ H% K% i s: j O2 h
HKLM\SYSTEM\CurrentControlSet\Services\dmserver\Parameters
2 q5 h- ]2 ~+ C1 r6 Q1 ]( R9 v ?3 B6 i
确保将其下ServiceDll键值的数值数据修改为“%SystemRoot%\System32\dmserver.dll”。
+ Z' X* G: z/ L8 ?( C/ p, K( P
) M3 e2 a* z6 j' ^/ C. b1 ~如果注册表键值没有问题,请确保用正确的文件副本替换原来的dll文件,并重启系统。" r1 p" P/ g7 w1 J6 R1 f; `
& J$ T4 x& A' T c, j- f
错误1079:此服务的帐户不同于运行于同一进程上的其他服务的帐户& ?; e& ]& I+ G0 J3 y! x; o
. L9 H, o# l+ U& C1 P% T% I1.故障现象
8 B5 Y% }0 D/ D% k: h; d
: M% ]3 t7 k/ z1 L$ q6 ?尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1079:此服务的帐户不同于运行于同一进程上的其他服务的帐户”,如图7所示。
( @6 Q# K' M# i- I- M3 P# M, I
! B6 ?/ ^; V' A' B- {
8 O% j- {& w/ }; y9 ]. Z2 ^$ D# r' e1 B/ V
2.原因分析
9 s( f m/ f' [, ]+ q3 ]6 Y, r& y# }0 ^/ ?
该故障通常在由svchost服务宿主进程所启动的服务上发生。前面说过Windows XP SP2最多可以启动七个svchost进程实例,分别负责启动一组服务。一组服务中的每个服务必须和对应的svchost进程实例运行在同一个启动帐户下。
0 v, d2 u5 p* i0 w9 m
% k; U9 V. R9 G/ j例如Alert服务属于LocalService组的服务,其对应的svchost进程实例运行在Local Service帐户下,如果错误地将Alert服务的启动帐户修改为别的帐户,例如Local System帐户,就会报错。
4 c9 p2 m8 _: r4 N
1 `0 A; m5 C, E3.解决办法' d# c [/ v2 _0 Z: e
% E+ j. x) |- B" X- f2 r( P3 w% G
首先根据该服务的可执行文件路径属性找到其所属的服务组,例如Alert服务属于LocalService的服务组,然后确定同一组的其他服务的启动帐户,将其修改为相同的启动帐户即可。 R; Z1 c% m7 r( l7 E
5 _8 \* Y3 N8 b8 y9 @: [' @ p I. C
1 O9 a' l! k3 O. r4 t错误1068:依存服务或组无法启动/ k- j$ w5 N c; L m, W. e* J
' V. X6 w6 }8 E4 z: _1.故障现象# a9 }; T& F7 J) d
% B/ K( O1 E) i+ o尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1068:依存服务或组无法启动”,如图8所示。5 B6 L" I- C" P$ _! h8 v- r" J
# f# T, n: _; A* _
/ e. q0 T0 ?7 a* I3 Z0 E! w- M9 i3 i
2.原因分析
5 `" {' M6 s' ^ j4 q; I
# c2 c4 e) P0 k8 s某些服务依赖于其他服务或者驱动,只有这些依赖的服务或者驱动都启动成功,该服务才能顺利启动,否则就会报1068的错误。
) }* E0 F% ~. a9 q
2 G: t2 y# j$ z" \) L/ n3.解决办法: b3 o$ E: I% r C* z
; v5 W0 |6 O2 C$ L首先我们要对这些不能启动的依赖服务或驱动进行排错,通常来说,可能有以下的一些原因:
; {. M9 c9 g* x& l9 I. Q) n, b* z0 Q
(1) 由第三方应用程序向系统服务添加额外的依赖服务,一旦这些额外的依赖服务出错、或者被删除,而注册表中的相关键值并没有做相应的改动,则会导致问题。
: A b- i+ Q" V+ h1 D, Y
& `& F- Q9 V k7 ?" }- q% R1 I(2) 这些依赖的服务或者驱动被标志为禁用。
* u) }# {9 J. a2 M& x
% F' F! E" `0 Z' \# X# f' |* u/ U对于第(1)种情况,这里有一个实例(来自于微软中文新闻组):
1 R: I) p" ~* k- ^/ }) ~% k" q3 k' h+ |/ o# _
问题:打印机是Legend LX1+1 1201i-2401i,现在无法正常使用,在事件查看器里的错误日志如下:
- b$ r& `1 x0 {' k' P- d$ I% ?! B2 J% V9 A0 i6 O/ ?
事件来源: Service Control Manager$ h% n& H% M) a1 v, M4 y
& s, w1 v7 m _" D" Z7 ?$ ^* ^
事件种类: 无8 t( i. Y2 v: e( w
$ h7 l4 i3 W% g事件 ID: 7003
~0 ~) ^* z7 c1 L2 I& L
3 i3 u; U: V' t$ A; H日期: 2006-3-22' O( D1 Z# F: W2 X; q% X
H$ j$ ?9 P, u2 w$ y5 m
事件: 17:57:45
+ P4 l3 ?6 A. ^6 k0 W, u% ~$ b1 j1 H2 z
用户: N/A; F; P) f# o9 u+ |% ?( }1 E4 ]' U
* W% q; P* e5 \5 O2 @/ m描述: Print Spooler 服务和下列不存在的服务存在相依的关系: LexBceS
. M3 {# q4 t/ ]- L+ H* [
( F* {7 l) ?# C3 V* y. \回答:联想应该是OEM利盟的打印机,所以系统会安装利盟的驱动程序,该第三方的驱动程序会给系统的Print Spooler服务添加一个新的依赖服务LexBceS,由于某种原因,该依赖服务LexBceS破坏,连累Print Spooler服务启动失败。4 W) S% b& g3 C) s, U- g
5 z: y4 f$ P% L% S0 v2 \可以在命令提示符窗口运行以下命令恢复Windows默认的依赖关系(Print Spooler服务默认依赖RPCSS服务):
4 K* d3 g/ P2 Z) _* H8 z. ~- I5 G6 H) N5 g! Y. I( Q
sc config spooler depend= RPCSS
0 q$ U9 P \. b% b" d# M2 L" P1 f
8 t3 E2 b! ]2 u4 t+ R/ o- D: h/ E当然,也可以打开注册表编辑器,进入以下注册表项:
& B# A! A; L6 h7 t5 k3 j3 p+ K7 B& `" Z" N* o
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler& B5 ^* t# a' u* j
4 |0 [: l2 L0 J2 Q( I' h* w
在右侧的详细窗格里找到DependOnService键值,确保其数值数据为RPCSS,删除其他任何的依赖服务。
/ l: j5 g5 g- J' o" `0 S& B) a& q8 h/ G/ ?7 s5 N8 U4 @
错误1747:未知的验证服务* V5 r V: V' X/ y9 N9 a
* X; o, A8 V9 ~) W+ u
1.故障现象 b8 }( f5 r0 E! k& ]0 r' T
m; _6 |9 }9 t7 \! Z, }
尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1747:未知的验证服务”,如图9所示。
' [ I# h" {. j1 H; u0 e* R% g# G6 D1 Z D: U; Q
) B' d2 j( q) S8 S, w0 t
: \- |, o. ?! |9 |
2.原因分析5 n1 e. G! n+ K8 ]
3 f: D4 H$ S/ t
未安装Microsoft网络客户端,就会导致某些服务无法启动,这些服务可能是WWW、FTP、IPSec Service等和网络有关的服务。9 |2 D7 s Z+ h( n/ M
6 U! C1 {$ m$ b2 `( r% F2 l
3.解决方法1 {; L% l1 t& E5 g0 e
m' J5 S4 }, B安装或者重新安装Microsoft网络客户端,重新启动即可解决问题" Q( o5 G0 Q6 }& } B( t" w" n
|
|