- 註冊時間
- 2014-5-14
- 精華
- 在線時間
- 小時
- 米币
-
- 最後登錄
- 1970-1-1
累計簽到:278 天 連續簽到:1 天
|
在阅读本文的时候,请严格按照故障现象进行比对排错!- y# }1 {# e8 o; u s B
6 K8 }$ f* w& ~ V2 R如果涉及到注册表操作,请务必事先备份相关注册表项,并新建还原点。
' V- s3 P8 l8 a: K; I+ ]; L/ Y2 I4 C' \
如果系统无法顺利启动,请按Reset键重新开机,然后按F8,在Windows高级启动菜单上选择“恢复到最近一次的正确配置”菜单项,这样就可以先前的HKLM\SYSTEM\ControlSet00n覆盖错误配置的CurrentControlSet(ControlSet00n中的n由HKLM\SYSTEM\Select的LastKnownGood键值指定)。( F( |. X' @! Z# b0 S# @2 d
' |9 t8 V6 T) b2 F" H/ w
错误2:系统找不到指定的文件: p# F2 K A- \0 U2 V9 [3 V
2 F' h& ~& |, ?, G; |( M
1.故障现象# N/ r( F: A' m( D+ Y
0 D; i) \3 S) j. Z1 g4 I尝试在“服务”管理单元窗口手动启动服务是,系统提示“错误2:系统找不到指定的文件”(Error 2: The system cannot find the file specified.),如图1所示。
8 {/ x- j/ M" o) a) L& ~/ d) j) C( [% _4 S( K) @ [5 [, P4 _4 j
+ g8 v' i |& r1 c2 ?/ `2 d
( [6 @$ e8 L& U% \! ?8 n2.原因分析
8 ~8 }; l$ D) a# R5 B9 P6 k% r* P# Y3 q! |2 W
两种可能:
, L3 L& ~) [; }8 j% @: W8 M
) i6 V9 a6 k$ v9 x. f4 f! \5 z# m(1) 服务的可执行文件丢失或者被破坏。( R' O2 i, a" R- Y* F; L
g7 E! _3 x) z7 h8 E(2) 服务相关注册表键值ImagePath的数值数据被篡改,导致SCM无法加载服务的可执行文件。
7 E) z3 H" O3 Y
7 G2 r* U. b/ t. f. K在“服务”管理单元窗口里可以看到每个服务的可执行文件路径,请仔细检查如图2所示的可执行文件所在路径,如果和参照系统的正确配置不符合,说明注册表键值ImagePath的数值数据有误。如果此处的配置没有问题,则说明可执行文件丢失或者被破坏。 5 J* X. ] N/ a
$ H2 u, u$ R0 o/ T. ^
! P* K9 t# t1 k$ @7 J
3.解决办法
1 U, G9 ^3 k* ]8 \% \8 K1 L2 O* P: ] f* x4 \6 G% \2 V3 v5 e
以“Task Scheduler”服务为例。5 E' X4 L: m0 J. N2 m0 F
6 z7 L3 t% y- Q1 j Z" B
如果注册表键值ImagePath的数值数据被篡改,可以定位以下注册表项:1 m- n2 X L' M& l" ^1 [
7 p# ]3 J, u: [$ Z+ L
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule; h: u* K4 e j- F2 f
+ L: _8 T% ]; F1 ]. q9 g
在右侧定位到ImagePath键值,将其数值数据修改为正确的值,并重启系统。& u: Y' A4 Y$ Y( d1 ?. y
7 B0 C- i+ Y5 s+ ~" r# ^5 x% }
或者借助sc命令:4 c4 H) r2 b" g( w8 @4 I. b9 ]
% V Z8 A$ ~9 v' {6 O
sc config Schedule binpath= "%SystemRoot%\System32\svchost.exe -k netsvcs"1 I3 ~/ O" R6 @( W) C2 {
5 S, l7 u2 o" T% I0 W
如果是可执行文件丢失或者破坏,请用正确的副本进行替换,并重启系统。对于本例来说,可执行文件是svchost,如果该文件被破坏,系统将无法正常运行。
& |% A3 z. U$ d" N; E s' g( ^: n2 T* n1 M
错误1053:服务没有及时相应启动或控制请求
! }2 p3 z. L, M j7 U' p% x, D' }2 n. ]# m) f9 p( H- I2 L, |! D% T
1.故障现象
. y: N! a, R: y
* w5 B1 @5 Y. J1 S2 |尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1053:服务没有及时相应启动或控制请求”,如图3所示。
2 g' s6 R9 M$ f8 y' ?
" G6 l7 W8 ^) h/ B( z1 @3 u
, n M1 B" \+ K x+ f7 j( {* u
. v+ s, }. y* y6 z0 O3 o. {5 j2.原因分析
Q& A/ b* ]6 f4 I5 r, ]4 }4 J# h, R' ^9 U2 l7 P: L
如图2所示,可执行文件的附加命令参数配置有误,会导致问题。9 Q' l/ e% {+ k- a
4 e2 I- E& \" S3 T
3.解决办法9 |$ _2 L% `1 W8 s6 m5 ~$ U
* X2 _ m ?$ ~# ]* I
参照上述的方法,用sc命令或者注册表编辑器,对附加的命令参数进行排错。% Q9 w X6 T6 V# @5 c" V
. p0 O; b4 s* _错误1083:配置成在该可执行程序中运行的这个服务不能执行该服务* j$ g: K6 H1 l1 f; p0 s, f
' v7 y8 _; }4 v/ A2 Y( b- G4 w- w7 Z
1.故障现象7 M% o( l8 F2 Y# H: N
* s- D$ y+ a2 W2 i8 c* K尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1083:配置成在该可执行程序中运行的这个服务不能执行该服务”,如图4所示。. f3 m f4 e) u
! k1 H& i @8 p: Q4 }; n$ k
6 p$ S2 R6 i m& g& K( s' N7 V" c- x7 m# Q5 ~
2.原因分析* S+ _# T" D* }8 y' S" D
- T* \* T7 A2 d- J o' Z$ @
该故障通常在由svchost服务宿主进程所启动的服务上发生。大家知道Windows XP SP2最多可以启动七个svchost进程实例(实际上启动六个进程实例),分别负责启动一组服务。每个svchost实例所负责启动的服务由以下注册表项决定:; j6 c) ?5 @! N# V. k4 F) d W8 [
( n8 m& H0 }- Y) ~, R. Y$ d% ]HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost
! [6 }: D' D( w& z( |5 X* o7 B( N
8 o$ S4 O7 y& `( N* u9 z$ q5 W" r其下共有七个键值:DcomLaunch、HTTPFilter、imgsvc、LocalService、netsvcs、NetworkService、rpcss和termsvcs。每个键值都定义了一个或者多个服务,也就是对应每个svchost进程实例所能启动的一组服务。
& _# n2 A& y6 Y3 Q; {
# t0 m; t1 B1 D9 G F* }& V4 }3 W本例中“Task Scheduler”服务的可执行程序参数是“svchost.exe -k netsvcs”,对应的svchost进程在启动该服务之前,会先到HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost下的netsvcs键值里查找是否有该服务的定义,如果没有,就会出现该故障现象。
3 W9 B `- M& _! Z/ ]$ h
: _: F& {- y9 o! `( A: u3.解决办法+ z0 g6 v& A5 j6 p
- h- Z/ }# v. v* r很简单,首先打开该服务的属性对话框,查看其可执行程序的命令参数(本例是netsvcs),如图2所示。1 |+ @* V2 K. n4 | S5 z: v
3 j& z- e) h: E) Q) X e9 U& {8 f然后进入以下注册表项:! k& s/ A. E, _$ J1 p9 `
/ ^: Q9 W" a$ [& p1 X7 j
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost
, N: N! | y' ?+ R, @, Q5 P3 g, ^( b. j2 M
/ T% e+ `' [' h在右侧定位到对应的键值,本例是netsvcs,在其数值数据里添加该服务名即可,本例是Schedule,如图5所示,并重启系统。
# a1 D6 s0 T' I
8 H* t4 J4 ^, e5 c D' p2 r* ^4 [1 G3 n0 }1 x: y- B
$ p! J% p* k% a" z
7 _) Q P b6 u6 R3 n6 N提示 为什么通常只会启动六个svchost进程实例?都是TermService服务惹的祸!TermService(Terminal Services)这个服务非常另类,不仅仅出现在DcomLaunch组里,同时还独立出现在termsvcs组里,然而在“服务”管理单元窗口里,该服务的命令行为“svchost.exe -k DcomLaunch”,也就是说实际上并没有一个svchost进程实例负责启动termsvcs服务组!
; ?. ^% M a& r" P m1 n
) [7 T6 n1 _+ l9 W C H0 K9 a0 K: E* O0 F& X) ~/ a& B1 D$ j
错误126:找不到指定的模块
* D1 R3 |; Z( `# p- w# Y" }
4 ]6 V# J9 J5 g! @' q1.故障现象
/ ~9 V& J2 H' N7 ?4 v% h+ l7 M
: v! n9 F3 j: I" n; i尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误126:找不到指定的模块”(Error 126: The specified module could not be found.),如图6所示。
: q! B6 g0 r; k, d$ k* ~+ O* s" U5 D; A% A& O
4 G) x: |* S9 D/ I9 P2.原因分析
5 R' X1 Y+ W, ?- D; [# F* m/ W' S% f- N% \
该故障通常在由svchost服务宿主进程所启动的服务上发生。这一类的Windows服务,其实是以dll模块的形式插入某个svchost进程。如果该dll文件被破坏,或者注册表的相关键值被篡改,都可能导致问题。, r' z# _# u* m7 N6 w
3 h* D: T( r9 B' l这类服务所对应的Dll文件,是由HKLM\SYSTEM\CurrentControlSet\Services\ServiceName\Parameters注册表项下的ServiceDll键值所定义的(此处的ServiceName是指服务名),如果该注册表键值出错,或者对应的Dll文件被破坏,就会导致这个问题。
p8 h1 _& R7 F3 ]6 ?: z8 \2 V* L9 d9 }2 F
在微软新闻组里有不少网友抱怨无法打开“磁盘管理”窗口,寻根溯源发现是“Logical Disk Manager”服务无法启动所导致。其中有一个case是系统被木马PCShare所感染,木马修改了“Logical Disk Manager”服务的注册表键值,把HKLM\SYSTEM\CurrentControlSet\Services\dmserver\Parameters注册表项下的键值ServiceDll的数值数据指向木马的文件“%SystemRoot%\System32\drivers\Ybfbqufe.sys”,尽管后来利用杀毒软件杀除木马,但是杀毒软件未能处理被木马篡改注册表键值,导致无法打开“磁盘管理”。
5 }1 @" W& N1 A
& J. ?. ]6 @* _3 n注意 不要将该故障和“错误2:系统找不到指定的文件”相混淆!
* l% x; t* G% e: t$ t M
% _9 z+ b8 q5 t( f. l" s# ^% q) [3.解决办法
/ v' }! c+ P& y+ k0 V1 l# L
% u' p4 {6 Y) F2 S% N3 T. S对于“Logical Disk Manager”服务的问题,在以下的注册表项:
% _4 @/ s/ q, A y K- e
5 J5 c- v6 d- h) tHKLM\SYSTEM\CurrentControlSet\Services\dmserver\Parameters
! r$ ^9 G. w$ x( L* D- W# A+ g* X' B7 D1 C* s) \( X
确保将其下ServiceDll键值的数值数据修改为“%SystemRoot%\System32\dmserver.dll”。! w8 R# {" C* s
( Z1 R3 m' X6 y! Z4 I如果注册表键值没有问题,请确保用正确的文件副本替换原来的dll文件,并重启系统。" C; t, a. j1 o
6 N: B) S8 W: X错误1079:此服务的帐户不同于运行于同一进程上的其他服务的帐户
5 i- f9 z6 n3 j; a, h/ [: D- ]* s0 t
1.故障现象
5 y2 O6 ^$ ^4 g* c2 Z% G( U/ U- U5 S; g$ J
尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1079:此服务的帐户不同于运行于同一进程上的其他服务的帐户”,如图7所示。6 S6 S- K1 Z% n5 q J! G% P* R
$ {- w0 K. `8 t) p" e
$ w& L' Y6 W7 B2 h0 q
+ K7 M/ I- U F. w
2.原因分析0 g# J% s4 V( I- x
- `& u* r9 \ \$ x- g
该故障通常在由svchost服务宿主进程所启动的服务上发生。前面说过Windows XP SP2最多可以启动七个svchost进程实例,分别负责启动一组服务。一组服务中的每个服务必须和对应的svchost进程实例运行在同一个启动帐户下。2 k5 O+ T5 j+ k. Y
, D L* n6 a& w& Y
例如Alert服务属于LocalService组的服务,其对应的svchost进程实例运行在Local Service帐户下,如果错误地将Alert服务的启动帐户修改为别的帐户,例如Local System帐户,就会报错。
. q7 M, E- n+ u) O7 Y8 A( a) p' X" H+ F5 N! _* f5 R) V- q
3.解决办法
u( Z8 l a9 K9 ~% O R g: i
+ M6 D. v" o4 L+ I! a首先根据该服务的可执行文件路径属性找到其所属的服务组,例如Alert服务属于LocalService的服务组,然后确定同一组的其他服务的启动帐户,将其修改为相同的启动帐户即可。
, Y o# W2 ?; [- m# k% V* V8 R+ w" E0 c2 \7 J/ P
9 J' @# e6 T/ W/ L! t! \* U
$ w5 x; A3 T7 y
错误1068:依存服务或组无法启动
, r% r+ [, }; b$ \- Q) I) D% U4 d4 x% G
1.故障现象
7 ?7 B% }+ p/ r& Q( s, h/ E+ e0 e7 Y" ]2 q
尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1068:依存服务或组无法启动”,如图8所示。5 S, B* }* m1 g/ m: w9 l4 V8 C* X
6 v* D" z2 `1 G2 R) M; f
' G, C* r6 _4 _* n( Y1 [" R
* b% |3 P8 ? D2.原因分析- i: P! N' h7 r8 E S5 L8 C9 y- b
$ e. h" w! l! G2 ?' P
某些服务依赖于其他服务或者驱动,只有这些依赖的服务或者驱动都启动成功,该服务才能顺利启动,否则就会报1068的错误。
8 e2 `2 l4 j8 s3 N* `
1 Z! M" m* O8 m* F: [5 W8 K% l3.解决办法6 o* D" ^* ^7 W$ K# B9 h u
3 N6 _- [5 U2 i- D9 i
首先我们要对这些不能启动的依赖服务或驱动进行排错,通常来说,可能有以下的一些原因:
4 s6 q7 o$ {0 L, [+ q# e* s# i/ p7 e) L
(1) 由第三方应用程序向系统服务添加额外的依赖服务,一旦这些额外的依赖服务出错、或者被删除,而注册表中的相关键值并没有做相应的改动,则会导致问题。
+ p0 L0 Q) w# v" D+ o: j3 s/ e$ F9 @, v: M0 t- A$ }
(2) 这些依赖的服务或者驱动被标志为禁用。
9 \/ l& v# C" q! @/ f# g4 z9 y3 L/ R0 \! ^8 }9 w
对于第(1)种情况,这里有一个实例(来自于微软中文新闻组):
! P' q. G9 S K
- z& X! M" q3 U问题:打印机是Legend LX1+1 1201i-2401i,现在无法正常使用,在事件查看器里的错误日志如下:
' S8 a2 G! a2 w7 b4 o+ t
9 F! {$ y7 G( ~6 k: D事件来源: Service Control Manager, d) C0 b" L& q: D
' n# B2 L }: J事件种类: 无( i% D. o: N* _8 m& R" r7 N
- f) b/ I1 |6 l* z" r6 V- d' e
事件 ID: 70034 ~5 }5 C/ I. F5 @
' n) @: l, @3 |2 d日期: 2006-3-22; o1 i+ U: K* z$ Q. M N
( D _! A5 F! t. ~1 o' \1 G事件: 17:57:45" R" f* m7 `& p2 @ @
7 Z2 |, U; v' }! ^* i$ {7 h
用户: N/A
. [9 b4 O$ `$ U4 W2 G
. n$ O( G9 \2 R描述: Print Spooler 服务和下列不存在的服务存在相依的关系: LexBceS
1 ^; e9 O& M% E }3 z! u+ Z6 N& v2 e! D% u+ J6 f
回答:联想应该是OEM利盟的打印机,所以系统会安装利盟的驱动程序,该第三方的驱动程序会给系统的Print Spooler服务添加一个新的依赖服务LexBceS,由于某种原因,该依赖服务LexBceS破坏,连累Print Spooler服务启动失败。
# A0 K3 u, a& u7 F5 d
& E* s: V I+ w! b0 O( B$ c* d* W可以在命令提示符窗口运行以下命令恢复Windows默认的依赖关系(Print Spooler服务默认依赖RPCSS服务):/ \7 ~. _: i$ H4 [
% v! @7 Y8 N5 x8 M! N4 A' Zsc config spooler depend= RPCSS
5 e7 O* g6 M8 s7 J4 C# E
! N2 U% u/ \, o% s) ]) [7 d) Y当然,也可以打开注册表编辑器,进入以下注册表项:
' A% h7 ~* n6 w9 i9 L; r" T* U* j
5 |4 C a h! U% \3 V& [! tHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler
$ z, q9 @& K( `: ~$ w' I' S; A% i, v% C, I. k6 M& T! n
在右侧的详细窗格里找到DependOnService键值,确保其数值数据为RPCSS,删除其他任何的依赖服务。
/ \8 i; ^2 Q( A2 x9 c
" D" e3 h; R s8 z' |% W错误1747:未知的验证服务
& d5 u' F5 }1 [; x) g. H2 f7 I7 U+ p: m3 u+ {5 q. @, @
1.故障现象
4 S! D1 r! l0 C* e& R# z/ j- h; F8 e4 n+ I
尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1747:未知的验证服务”,如图9所示。/ w; A' Y, \6 P- c- c5 M
+ V2 I& ^1 i) Q
/ k: P9 N, e( B% r" Y0 K, l* ~: a/ ]7 v
2.原因分析6 H0 y. Z# d+ C8 p# j
9 t" U5 J& T# Q+ e" S
未安装Microsoft网络客户端,就会导致某些服务无法启动,这些服务可能是WWW、FTP、IPSec Service等和网络有关的服务。
, L. R: E$ [, v8 V; s; X4 E
+ _' q; Z+ G3 h3.解决方法/ {5 O4 F1 g: Y
& v4 `& G/ l; H0 a. Z8 O安装或者重新安装Microsoft网络客户端,重新启动即可解决问题
5 X7 w" {/ Z) e4 _6 Z: s |
|