WK綜合論壇, WK综合论坛

 找回密碼
 立即注册
查看: 1113|回復: 0

[技術討論] 打印机经典攻略

[複製鏈接]
累計簽到:278 天
連續簽到:1 天
發表於 2014-9-13 23:22:36 | 顯示全部樓層 |閱讀模式
VIP精品區,資源無限好賺金任務區,輕松賺金幣
加入VIP,享受高級特權宣傳賺金又升級,超級棒
在阅读本文的时候,请严格按照故障现象进行比对排错!
" j' q( t3 X# @2 D( f( [: E# g3 v% i3 ~+ L  o. }
如果涉及到注册表操作,请务必事先备份相关注册表项,并新建还原点。
! m; L" g+ p4 q- N
' `8 c6 ]+ F: y- Z# B如果系统无法顺利启动,请按Reset键重新开机,然后按F8,在Windows高级启动菜单上选择“恢复到最近一次的正确配置”菜单项,这样就可以先前的HKLM\SYSTEM\ControlSet00n覆盖错误配置的CurrentControlSet(ControlSet00n中的n由HKLM\SYSTEM\Select的LastKnownGood键值指定)。  {9 O3 c8 M! N  f
: w8 [5 R9 i1 B, z
错误2:系统找不到指定的文件
& B( n* P  r2 Z" O! t- {0 R; |% X! u+ ?: H0 u. y0 a3 c; D5 I. ]
1.故障现象
, K5 R0 G; o+ A+ [+ c7 H% K- P3 m( W3 c& k0 S
尝试在“服务”管理单元窗口手动启动服务是,系统提示“错误2:系统找不到指定的文件”(Error 2: The system cannot find the file specified.),如图1所示。0 s2 S5 v) r6 m& q% A& K
. b3 q6 S1 {4 j; a$ h. A& Q

- E% `- o$ [' z1 Z( K
3 Y7 F4 E, i5 P" X+ [" k2.原因分析4 k8 q1 V( u& M0 Z/ J
/ \. F) V# a) F6 D7 {5 `% t
两种可能:
+ ~7 P) M( k# A& y( ?" O: j" a7 o$ a+ g6 X
(1) 服务的可执行文件丢失或者被破坏。7 h4 N8 ?, E9 T4 R- L) f
3 p0 K( W& A% X8 F# s( s
(2) 服务相关注册表键值ImagePath的数值数据被篡改,导致SCM无法加载服务的可执行文件。9 r( D" ^( M' j" s8 I4 M0 g5 v

$ L6 Z- [" [7 y( [8 l0 x在“服务”管理单元窗口里可以看到每个服务的可执行文件路径,请仔细检查如图2所示的可执行文件所在路径,如果和参照系统的正确配置不符合,说明注册表键值ImagePath的数值数据有误。如果此处的配置没有问题,则说明可执行文件丢失或者被破坏。 ! X, z( K* O& l3 l* `
* k: O- O6 Q2 o6 t

2 v( N2 u2 z5 q5 I. E( A( \+ g3.解决办法
# }9 V$ \+ e* j3 w" U) Z0 U7 z- j0 j6 e$ R: S' {8 l
以“Task Scheduler”服务为例。
& B8 l8 F7 \- s
0 z6 @' w- f; B8 l" b如果注册表键值ImagePath的数值数据被篡改,可以定位以下注册表项:) \* ?# e  H4 N6 ~4 B' ~* d( \

) E- Z: H5 `( _- R$ mHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule) Z* }' c7 b+ `7 ]
/ j2 S0 o; W8 ?0 B; ^! K3 z6 @
在右侧定位到ImagePath键值,将其数值数据修改为正确的值,并重启系统。$ ^- Z5 g; a7 n4 T  Q8 o

4 r* ?1 n* p9 i4 V或者借助sc命令:; Q! S5 t4 y/ p" o2 J
: B+ |/ A9 M# i
sc config Schedule binpath= "%SystemRoot%\System32\svchost.exe -k netsvcs"
* \! d) G- [3 z- w7 ~. m8 {. v7 h) E) d$ q' m9 @
如果是可执行文件丢失或者破坏,请用正确的副本进行替换,并重启系统。对于本例来说,可执行文件是svchost,如果该文件被破坏,系统将无法正常运行。0 k: C+ v" R% q/ u$ n2 A2 T
. L9 q* y$ d9 E) B; ], Q, C
错误1053:服务没有及时相应启动或控制请求0 ~# N; w6 ]3 D5 V. }

5 b6 q) v( ?" v6 H5 T3 {1.故障现象
/ O& D! w7 ~2 F; @: E# y# Q2 [1 S& i0 O" h8 C7 W
尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1053:服务没有及时相应启动或控制请求”,如图3所示。
! m. Y& Z, I- j6 n& {6 K/ }$ C, R6 j9 ]5 z/ V) t
0 l9 C0 S- y0 w9 |0 T! O
: f- H5 o) |- F
2.原因分析" K4 T: @  l* x2 {0 K" D

7 x6 Q# r& |" x! M+ K% b& k/ a- K如图2所示,可执行文件的附加命令参数配置有误,会导致问题。" ?0 y: e: T  i! G7 G& q8 X
& C7 V# |7 X2 C
3.解决办法
" H8 I. S: ^3 n9 G
" l5 T( p1 j% b" U2 O8 u参照上述的方法,用sc命令或者注册表编辑器,对附加的命令参数进行排错。
* j$ u+ o9 p* c- t5 U
) F5 A* p9 k' W/ b$ ~' }$ G错误1083:配置成在该可执行程序中运行的这个服务不能执行该服务
" \  N3 u9 }3 K) Y: h- R+ C) P8 P/ M: p, J% D0 V  U+ b
1.故障现象
3 `0 A6 d/ S  {8 A- K6 e
9 U, D6 e# x; @' _, A尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1083:配置成在该可执行程序中运行的这个服务不能执行该服务”,如图4所示。( t4 Z! F! `" }7 {6 g" `+ e$ {  e
; l! y7 g' D2 D; D, O7 p5 g/ w8 y  r6 [
/ ]+ f4 K% l& X# K+ B

' D  o5 |' v- e2 v* m% y# `, J7 z2.原因分析
! c) O% V% k: M) h8 f
9 s( y7 P# o  G) {' v7 A! ~& V该故障通常在由svchost服务宿主进程所启动的服务上发生。大家知道Windows XP SP2最多可以启动七个svchost进程实例(实际上启动六个进程实例),分别负责启动一组服务。每个svchost实例所负责启动的服务由以下注册表项决定:3 I% W/ ^$ B, [

5 ]8 t% O+ y5 K% zHKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost' |# }, b' Y+ y/ D" _, }

! i2 V$ G3 z" E其下共有七个键值:DcomLaunch、HTTPFilter、imgsvc、LocalService、netsvcs、NetworkService、rpcss和termsvcs。每个键值都定义了一个或者多个服务,也就是对应每个svchost进程实例所能启动的一组服务。
/ z- ]6 J% r6 `  c7 M
* h6 J" E9 g' q' [- ~1 ^! o, U本例中“Task Scheduler”服务的可执行程序参数是“svchost.exe -k netsvcs”,对应的svchost进程在启动该服务之前,会先到HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost下的netsvcs键值里查找是否有该服务的定义,如果没有,就会出现该故障现象。
$ R, ^) _" s: E) w7 ]  p9 M
7 Y# L* f1 n& }3 `3.解决办法
3 N9 u+ O5 }4 F0 v" l* G! o, T0 h- v1 {4 N2 x
很简单,首先打开该服务的属性对话框,查看其可执行程序的命令参数(本例是netsvcs),如图2所示。
* v' i) D) P( B2 c4 S9 G! i( e3 ^+ v& N: d$ J, e0 E# V( r7 E) }
然后进入以下注册表项:4 l% ]5 {8 a6 e4 }

' P2 Q( e5 P5 a3 r) p9 I- r. W7 wHKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost
. u* b( |& v- M
( x+ N4 n: ^1 I9 G$ F1 v4 V在右侧定位到对应的键值,本例是netsvcs,在其数值数据里添加该服务名即可,本例是Schedule,如图5所示,并重启系统。+ O% h' U0 h5 u9 b# z
* e+ B# r* _( Z( |& h

) z! E/ p3 Y9 _1 K
8 _, k2 w' m: l6 t) W& |  _  ]2 L" @" r% J7 i
提示 为什么通常只会启动六个svchost进程实例?都是TermService服务惹的祸!TermService(Terminal Services)这个服务非常另类,不仅仅出现在DcomLaunch组里,同时还独立出现在termsvcs组里,然而在“服务”管理单元窗口里,该服务的命令行为“svchost.exe -k DcomLaunch”,也就是说实际上并没有一个svchost进程实例负责启动termsvcs服务组!/ j7 c# r$ O6 ?" ~
8 B$ v! H; R& M0 K. U
% B2 R) h8 C1 b5 c6 G, U5 r
错误126:找不到指定的模块
: }: \  u* b: W) R+ m' P1 }, B6 S% x4 Y, K7 ~: @: O, t6 r. @
1.故障现象
- _: ?. r' b- w" v8 j+ P& F' J/ S" e# A  |" e
尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误126:找不到指定的模块”(Error 126: The specified module could not be found.),如图6所示。4 N8 p) R, b6 x7 y4 \+ C
' X5 Y5 ]& E. W! R8 J6 E

! s# V/ a  R) ?9 E5 O2.原因分析  x' Q! p, u! `) V( l; e  i
3 F( k* c% K) A
该故障通常在由svchost服务宿主进程所启动的服务上发生。这一类的Windows服务,其实是以dll模块的形式插入某个svchost进程。如果该dll文件被破坏,或者注册表的相关键值被篡改,都可能导致问题。
9 N1 n9 s; V+ n4 ^
1 [! s3 p/ n( {2 p: j( Z这类服务所对应的Dll文件,是由HKLM\SYSTEM\CurrentControlSet\Services\ServiceName\Parameters注册表项下的ServiceDll键值所定义的(此处的ServiceName是指服务名),如果该注册表键值出错,或者对应的Dll文件被破坏,就会导致这个问题。
  o% d1 a" u- t0 a" M8 D5 O$ e) T, u  I* z  H' ?! v* Y: V
在微软新闻组里有不少网友抱怨无法打开“磁盘管理”窗口,寻根溯源发现是“Logical Disk Manager”服务无法启动所导致。其中有一个case是系统被木马PCShare所感染,木马修改了“Logical Disk Manager”服务的注册表键值,把HKLM\SYSTEM\CurrentControlSet\Services\dmserver\Parameters注册表项下的键值ServiceDll的数值数据指向木马的文件“%SystemRoot%\System32\drivers\Ybfbqufe.sys”,尽管后来利用杀毒软件杀除木马,但是杀毒软件未能处理被木马篡改注册表键值,导致无法打开“磁盘管理”。8 N; h7 Y! f/ M+ h4 b8 i' l

3 F3 c* [6 b6 z注意 不要将该故障和“错误2:系统找不到指定的文件”相混淆!
$ |5 \, J. \; [7 B4 t' Q2 ^: I" v5 ]: y( o
3.解决办法
" s9 H% |" o8 X) e# e7 K5 o8 u4 [
  o( f2 ]' A! E0 K3 G对于“Logical Disk Manager”服务的问题,在以下的注册表项:
2 d* C3 K  o0 @3 y$ f% ~) e- f
! |3 h& p% ~, ]& IHKLM\SYSTEM\CurrentControlSet\Services\dmserver\Parameters
" F; J( ~  j9 P" p3 y4 |1 l! C) Q: y! O  }# ~0 |" y
确保将其下ServiceDll键值的数值数据修改为“%SystemRoot%\System32\dmserver.dll”。
- R) w% h0 ^) _9 `6 _; C+ U2 z; s- ^3 h
如果注册表键值没有问题,请确保用正确的文件副本替换原来的dll文件,并重启系统。
/ o$ ^# i0 Q, W1 M& b: x3 }/ f
+ ^9 q8 o7 D; w- J- z8 l; w1 E错误1079:此服务的帐户不同于运行于同一进程上的其他服务的帐户
) O1 O2 G' v- q" S8 L* b  S4 R5 A% U3 @; |4 T) k
1.故障现象0 h+ \' y/ {- }. a7 E

  K! Q" j$ K+ [7 b- o尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1079:此服务的帐户不同于运行于同一进程上的其他服务的帐户”,如图7所示。
  c& q- Q: F& C% B  F+ V- r& \3 q% R; y) Y6 L- f

5 h, e2 G+ s0 s  F: ]8 X, N& V" i
+ G: D3 B3 b8 @6 |. n0 q2.原因分析
7 p( B/ U" R+ P( _$ \. [$ @1 t7 F( I
该故障通常在由svchost服务宿主进程所启动的服务上发生。前面说过Windows XP SP2最多可以启动七个svchost进程实例,分别负责启动一组服务。一组服务中的每个服务必须和对应的svchost进程实例运行在同一个启动帐户下。5 e% z1 ?; |& R$ ?
/ r% O( E% Q0 z( L% Y" k- |
例如Alert服务属于LocalService组的服务,其对应的svchost进程实例运行在Local Service帐户下,如果错误地将Alert服务的启动帐户修改为别的帐户,例如Local System帐户,就会报错。0 X( C* r# k( j( n" e# f6 H

4 C- Z& B) O3 d6 h1 j3.解决办法
, H5 Y1 J0 D0 W! ~" j  ^) V
. A1 `& ~- b0 e7 k  O# p首先根据该服务的可执行文件路径属性找到其所属的服务组,例如Alert服务属于LocalService的服务组,然后确定同一组的其他服务的启动帐户,将其修改为相同的启动帐户即可。
% H& \) M3 c6 A+ Z: C& X, H
% r& P2 q& a/ d6 ]. }# }
4 q5 f* K9 a4 ~* i, N( u1 Z7 T2 d- H# ~: ~
错误1068:依存服务或组无法启动
2 }. z' j# F8 K9 F* S" g3 @+ R
5 _; ?& o  F. d2 ?6 |1.故障现象
- _! Y5 ?- P# ]" s) o" ]+ u
0 Z, T$ C4 H, ?# B$ L" N" v2 a尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1068:依存服务或组无法启动”,如图8所示。
2 a: g) y0 I- _1 @- h4 n/ P/ j0 y" T, J# Q% H9 \

, @" d' Y- x$ y" M6 v* k# ^) l
& J; E9 ]2 ?; ?) v) J7 H* G/ m0 Y2.原因分析2 a: v, y8 Z; v; Z6 q# v5 }

. N. Z# A+ k/ l( n* N/ w* E$ I某些服务依赖于其他服务或者驱动,只有这些依赖的服务或者驱动都启动成功,该服务才能顺利启动,否则就会报1068的错误。8 S. b/ g1 R3 W4 t; F3 W4 q8 e

+ C& G9 M2 {5 |. y# L3.解决办法% Q. k" h1 n8 f' U

# t4 d* |# t  [0 a, _; U0 S9 T2 k6 s4 u首先我们要对这些不能启动的依赖服务或驱动进行排错,通常来说,可能有以下的一些原因:! V. ^+ ^2 B( u2 W; N6 n7 v1 y

0 @4 P) v7 @1 r  n0 ?& z; `6 h(1) 由第三方应用程序向系统服务添加额外的依赖服务,一旦这些额外的依赖服务出错、或者被删除,而注册表中的相关键值并没有做相应的改动,则会导致问题。
# H& n6 S2 w4 E4 ~6 F  D( u3 `7 }. Q( I* t; V: _4 ]
(2) 这些依赖的服务或者驱动被标志为禁用。
& H  g. T# t4 P4 t5 s6 ]+ @+ ~
+ c0 o5 v5 }- |4 {对于第(1)种情况,这里有一个实例(来自于微软中文新闻组):1 G2 b, T/ q0 X& d2 S
2 E2 K0 T2 P% z1 l+ C, ^( Y
问题:打印机是Legend LX1+1 1201i-2401i,现在无法正常使用,在事件查看器里的错误日志如下:$ y. }( `/ h/ T! M/ [3 C
" H3 h2 I9 O5 H. l' C$ n7 a3 [
事件来源: Service Control Manager8 Z+ {* r2 ?( I8 Q3 U* U3 S

+ A3 ~! h; w% }; m* C1 T; O# ]事件种类: 无: _! T3 N$ D1 c/ Q& }) h- b
) B# Q% w7 I6 g9 b% Q/ F
事件 ID: 7003
1 @$ ]: X. M& H) O- m; p
1 P  X' m! w6 t4 H+ J7 U/ }日期: 2006-3-22, y  w" f+ h4 U4 h2 F& d+ Y
5 l/ K% W. g" L" ~0 F
事件: 17:57:45! N! s. b. P9 ]9 S4 X, p

. M4 k2 K! K, w7 l6 A/ @6 y4 x用户: N/A/ x# [* E. @0 G1 ^7 n
9 T- {9 C4 y% G+ m, o
描述: Print Spooler 服务和下列不存在的服务存在相依的关系: LexBceS( ]" N9 Y8 |  k3 T# G2 M/ [
! F/ J/ Z1 p/ V! ]0 J' N
回答:联想应该是OEM利盟的打印机,所以系统会安装利盟的驱动程序,该第三方的驱动程序会给系统的Print Spooler服务添加一个新的依赖服务LexBceS,由于某种原因,该依赖服务LexBceS破坏,连累Print Spooler服务启动失败。
& N. \' n! ^. R$ J- w$ E' p+ ^$ A0 m$ N4 Q) U4 v
可以在命令提示符窗口运行以下命令恢复Windows默认的依赖关系(Print Spooler服务默认依赖RPCSS服务):, o! k$ C  I  `5 z$ R7 c# j$ O' Z

  T: k1 |( ^5 b4 m! M, qsc config spooler depend= RPCSS
# V5 ?- R8 H1 t( o$ U% j% P
' s; l, j9 m: b( x1 d; H- l/ m当然,也可以打开注册表编辑器,进入以下注册表项:
" {7 N# u: E* ]$ s9 K+ @' o
: {! `5 W3 m" K1 SHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler
) q* u* H7 }' j/ Q! {+ r
9 `0 i9 `4 V8 S  a在右侧的详细窗格里找到DependOnService键值,确保其数值数据为RPCSS,删除其他任何的依赖服务。- m) f1 F- V% N. t7 k9 Q8 |
& o7 f+ R" R7 O# g2 b
错误1747:未知的验证服务* T3 a7 @3 m& E' D$ L) o" O
- n: J2 O6 v; w
1.故障现象
6 Q9 s4 W+ q$ l2 E5 B, I0 }
" E) s9 f. h9 x$ W尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1747:未知的验证服务”,如图9所示。
; N5 D- W6 \( m* t8 C$ ~" |  c" A& O
; g, w$ i* \/ k9 x& n. t2 J' q4 O& F: P4 X. r
+ B) {& P, ?  O# x! ?
2.原因分析
; {0 h; `# B; W0 O& Z5 X
7 q$ q9 n  H; j, x0 k; W未安装Microsoft网络客户端,就会导致某些服务无法启动,这些服务可能是WWW、FTP、IPSec Service等和网络有关的服务。& K( o9 k7 r/ s' t
/ v% q$ j' a/ d5 `$ ]( L
3.解决方法
# w4 h! T( A) b1 O: x
$ R" `: r0 P. _5 L, _4 y0 S- N安装或者重新安装Microsoft网络客户端,重新启动即可解决问题
  x: r' r5 Y* O
回復

舉報

 分享同時學會感恩,一句感謝的話語,就是最大的支持!  歡迎交流討論
您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則


快速回復 返回頂部 返回列表