WK綜合論壇, WK综合论坛

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

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

[複製鏈接]
累計簽到:278 天
連續簽到:1 天
發表於 2014-9-13 23:22:36 | 顯示全部樓層 |閱讀模式
VIP精品區,資源無限好賺金任務區,輕松賺金幣
加入VIP,享受高級特權宣傳賺金又升級,超級棒
在阅读本文的时候,请严格按照故障现象进行比对排错!
: n- `+ d& p/ O
$ E- m) w' t0 e* n如果涉及到注册表操作,请务必事先备份相关注册表项,并新建还原点。
8 G3 X" z5 D, ?! Y  u- k+ E- Q% O5 g3 }& |0 X; x
如果系统无法顺利启动,请按Reset键重新开机,然后按F8,在Windows高级启动菜单上选择“恢复到最近一次的正确配置”菜单项,这样就可以先前的HKLM\SYSTEM\ControlSet00n覆盖错误配置的CurrentControlSet(ControlSet00n中的n由HKLM\SYSTEM\Select的LastKnownGood键值指定)。+ M6 L1 X$ z4 a. c! Y& l8 ?+ x  S

" z" t7 U. `7 g1 D9 R* ?7 H错误2:系统找不到指定的文件
3 z) C, n6 y6 p: }. Y; w4 Z; b7 x1 P9 M, @. [
1.故障现象
. T! U. N4 D& g9 C: e
# z9 F% M  T' a尝试在“服务”管理单元窗口手动启动服务是,系统提示“错误2:系统找不到指定的文件”(Error 2: The system cannot find the file specified.),如图1所示。3 I& N( k& V! Z9 }- |
# R4 x  l" H0 K) T& V! h
  E0 V& G( Y$ {: w  C$ M  F
+ X- b3 z  `: c' @4 g: T8 `1 i
2.原因分析+ S6 _; s8 I3 u& ]. o' r

8 {: ^; n) H8 t3 ~7 N两种可能:
8 u4 S" ^: e0 Y6 _0 ?5 Q% }' x5 a2 B5 n
(1) 服务的可执行文件丢失或者被破坏。
0 z9 [9 Z+ X% y7 i
' ?6 @& U, Q5 {(2) 服务相关注册表键值ImagePath的数值数据被篡改,导致SCM无法加载服务的可执行文件。
4 q: G7 i' `/ s
4 [; |# S4 p4 G在“服务”管理单元窗口里可以看到每个服务的可执行文件路径,请仔细检查如图2所示的可执行文件所在路径,如果和参照系统的正确配置不符合,说明注册表键值ImagePath的数值数据有误。如果此处的配置没有问题,则说明可执行文件丢失或者被破坏。 ( F6 X# k3 u4 l  K; m' S
* t: |" F7 n5 h8 a: {

9 T# _9 ~3 X2 I+ C: l$ W1 l3.解决办法
  p2 D. x/ Z5 J+ j3 V
% V* Z, H5 [+ L+ s: C4 X以“Task Scheduler”服务为例。. o9 M; U2 c5 l0 A
. d6 C+ N* f1 v' v$ n
如果注册表键值ImagePath的数值数据被篡改,可以定位以下注册表项:  Y# g5 Y; p, _$ X% ~0 g1 X, s

4 b0 u) u. v0 v8 Y8 ~1 bHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule
; ]; Q3 ]4 l% @) K/ Z. S8 W, C( [9 A& N: ~- e& ]. A
在右侧定位到ImagePath键值,将其数值数据修改为正确的值,并重启系统。
9 C1 V! W) C. m5 W, e$ g+ z. I9 j1 J/ p! V! F
或者借助sc命令:
& f5 A/ l) O+ j, h8 R& o- G
5 _; H1 r+ T$ h! {6 Z! psc config Schedule binpath= "%SystemRoot%\System32\svchost.exe -k netsvcs"
4 n& r. E$ T5 N; J" q  G
' B1 H/ D+ S$ ]. h如果是可执行文件丢失或者破坏,请用正确的副本进行替换,并重启系统。对于本例来说,可执行文件是svchost,如果该文件被破坏,系统将无法正常运行。" h0 O: ?0 U8 c8 s7 O5 j5 W+ w

: q1 ?5 _# t% n错误1053:服务没有及时相应启动或控制请求, h/ r! h9 ?% i4 O# C
/ T. B: C! f/ o
1.故障现象! m% v6 e1 ~! ~/ K# \

$ n3 l$ ^' |$ \4 T" {尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1053:服务没有及时相应启动或控制请求”,如图3所示。
+ h+ U/ L5 W9 }1 x
$ `! I3 ?0 u8 b0 f0 n  z+ _/ T/ K/ _2 w: p- a% \7 L* d1 s. W. G
: r8 @4 S% J7 s2 ?
2.原因分析$ `- ]; j5 @) q
2 |- o5 d, o, z2 w# l* I0 x7 K
如图2所示,可执行文件的附加命令参数配置有误,会导致问题。
& G* N9 W. r, k6 Q, ~3 G
4 O* ]" n; M0 o" P, u9 W3.解决办法1 g: T4 u- V$ o0 n

( t  A# g/ q) L. [参照上述的方法,用sc命令或者注册表编辑器,对附加的命令参数进行排错。
- Y: U" s/ }6 E: o5 d( @2 V
5 G+ g+ [, _; z- a1 K& ?错误1083:配置成在该可执行程序中运行的这个服务不能执行该服务* y" F; y! i) G# @

4 l; [9 J# ]/ W1.故障现象
; h0 q. J3 c! k% O) M( m: q5 d6 F! \( f: t3 d% p
尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1083:配置成在该可执行程序中运行的这个服务不能执行该服务”,如图4所示。
, i  v+ C; S+ ]1 y- a5 ]/ D5 `$ b2 m& B# r) |' ]

$ u+ l, t0 W: k# j2 C( p8 v
6 [- o. Q2 l: k2.原因分析+ @% M, y/ M* }0 p2 h6 W

& ?8 O( ]5 q9 j7 e+ p7 \8 k该故障通常在由svchost服务宿主进程所启动的服务上发生。大家知道Windows XP SP2最多可以启动七个svchost进程实例(实际上启动六个进程实例),分别负责启动一组服务。每个svchost实例所负责启动的服务由以下注册表项决定:# ^) J/ ]* D: Q6 j' r& U
; W. H% L% H# z# @7 i
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost8 Z% x# M" X  l

, t; d  D7 C5 P8 \* o  A- ~: ~其下共有七个键值:DcomLaunch、HTTPFilter、imgsvc、LocalService、netsvcs、NetworkService、rpcss和termsvcs。每个键值都定义了一个或者多个服务,也就是对应每个svchost进程实例所能启动的一组服务。& w8 D* x" p! X/ ^  d, L
3 Q6 ]7 I) L# j  V, ]
本例中“Task Scheduler”服务的可执行程序参数是“svchost.exe -k netsvcs”,对应的svchost进程在启动该服务之前,会先到HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost下的netsvcs键值里查找是否有该服务的定义,如果没有,就会出现该故障现象。) W( z! \9 y% ]! i( l
. ^& H5 p+ J" F+ Q/ L: x8 b# @
3.解决办法7 V. M4 N: {9 g3 w/ \* p0 x* i

, Q3 D4 B- V* E# `6 y' f很简单,首先打开该服务的属性对话框,查看其可执行程序的命令参数(本例是netsvcs),如图2所示。
- N8 g2 C! `1 _' l2 k/ Z+ x9 F3 @5 X' C- o4 X) g& a: r
然后进入以下注册表项:
+ w5 G* U* o# z" Y* T4 z6 t" I0 L) L4 r' Q2 f& Z, |9 m3 d& ?# j
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost+ _1 X+ q, U+ Q* d. {3 E/ z# f4 H
  @1 m3 L& b7 ^5 N6 T
在右侧定位到对应的键值,本例是netsvcs,在其数值数据里添加该服务名即可,本例是Schedule,如图5所示,并重启系统。
' r: k7 B9 q* C0 w
! P4 x. T- h! I) ~& J% V, g
( ?( l! O) i! q( |+ w$ B$ `$ \% l% S

1 z6 s4 z/ i' `/ x! t提示 为什么通常只会启动六个svchost进程实例?都是TermService服务惹的祸!TermService(Terminal Services)这个服务非常另类,不仅仅出现在DcomLaunch组里,同时还独立出现在termsvcs组里,然而在“服务”管理单元窗口里,该服务的命令行为“svchost.exe -k DcomLaunch”,也就是说实际上并没有一个svchost进程实例负责启动termsvcs服务组!
, J9 ~" j1 ?  m) x4 y; m& b/ q* V; C; Y7 y/ Q

7 S& f$ o& q# i+ w) C& E错误126:找不到指定的模块
$ h# ?5 g5 b5 n) d# p6 i/ F1 z; r. W5 r+ C- A# |+ o. w. @0 v$ T8 b
1.故障现象) E3 a7 c2 M: e: `
$ m- P9 Q. K) q
尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误126:找不到指定的模块”(Error 126: The specified module could not be found.),如图6所示。
; N7 Y9 T/ m' l
0 v; n+ }& C9 ^5 E; C2 [+ i3 t: [$ r: h0 c# J$ n
2.原因分析& N$ i& u# W3 b: [$ V
7 l* y+ l+ J) Q% x
该故障通常在由svchost服务宿主进程所启动的服务上发生。这一类的Windows服务,其实是以dll模块的形式插入某个svchost进程。如果该dll文件被破坏,或者注册表的相关键值被篡改,都可能导致问题。% t6 r0 a5 E  ?, P' W  ^; H

: N" r* Y6 |& Y) }7 H' d8 Z这类服务所对应的Dll文件,是由HKLM\SYSTEM\CurrentControlSet\Services\ServiceName\Parameters注册表项下的ServiceDll键值所定义的(此处的ServiceName是指服务名),如果该注册表键值出错,或者对应的Dll文件被破坏,就会导致这个问题。# d/ X; Q' Y7 K. A; G1 s9 ?) V

9 n; r* T; l: j: {3 b5 J在微软新闻组里有不少网友抱怨无法打开“磁盘管理”窗口,寻根溯源发现是“Logical Disk Manager”服务无法启动所导致。其中有一个case是系统被木马PCShare所感染,木马修改了“Logical Disk Manager”服务的注册表键值,把HKLM\SYSTEM\CurrentControlSet\Services\dmserver\Parameters注册表项下的键值ServiceDll的数值数据指向木马的文件“%SystemRoot%\System32\drivers\Ybfbqufe.sys”,尽管后来利用杀毒软件杀除木马,但是杀毒软件未能处理被木马篡改注册表键值,导致无法打开“磁盘管理”。8 y3 B1 M  g, I. A; V0 {

" X0 h' f1 z' _$ N! _注意 不要将该故障和“错误2:系统找不到指定的文件”相混淆!
! [2 x  a5 m3 V7 L1 G* z- p& N8 Y0 d8 Z& G2 [% Q
3.解决办法
$ G- z! E( z5 B4 H. i, c& Q8 w& D
, T$ V: R: W' V! J$ }8 g对于“Logical Disk Manager”服务的问题,在以下的注册表项:
8 b# [8 l# h% E. L5 W" V. l8 X/ c/ T$ \0 b
HKLM\SYSTEM\CurrentControlSet\Services\dmserver\Parameters% g% M% G- J* R& ~! J( q

  e- ^) E5 H7 b* C, J+ N- @确保将其下ServiceDll键值的数值数据修改为“%SystemRoot%\System32\dmserver.dll”。
- H% m( j$ |( j9 T- \) |' i+ m
3 R3 F7 z& I: j* D1 b% g3 M* ?3 _4 b& Z如果注册表键值没有问题,请确保用正确的文件副本替换原来的dll文件,并重启系统。' D. B/ I% @( s, z6 K9 o

) Y. D0 C! f! X' n$ y# ]错误1079:此服务的帐户不同于运行于同一进程上的其他服务的帐户  y3 v" _! t) o) c0 q& e) Z/ C9 i3 Y
# V& X2 F3 l" S. I$ }
1.故障现象
2 Y+ H3 M* V) d$ @. i
/ t! Q; q! v& l, |尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1079:此服务的帐户不同于运行于同一进程上的其他服务的帐户”,如图7所示。9 P( {* {) P. I( _5 x9 z& G

! ^! [$ Y! `  ^, a/ z1 J+ ^
/ z1 L1 g* n2 D# a* v9 o6 y0 t9 L. O5 t3 ?' [2 O$ k8 n/ A, F
2.原因分析
( j. @, f& t7 V4 _- ?
7 n$ M+ w% Y. p/ P( l$ y& U% D3 Q该故障通常在由svchost服务宿主进程所启动的服务上发生。前面说过Windows XP SP2最多可以启动七个svchost进程实例,分别负责启动一组服务。一组服务中的每个服务必须和对应的svchost进程实例运行在同一个启动帐户下。3 X/ h- l1 O7 {+ ?, v  q1 ?+ B7 `

/ X( e' ~  u0 z例如Alert服务属于LocalService组的服务,其对应的svchost进程实例运行在Local Service帐户下,如果错误地将Alert服务的启动帐户修改为别的帐户,例如Local System帐户,就会报错。
: i) d$ x7 V* t, z# v. X' h4 H& @/ j8 {, o8 Q, @' Q- \7 A1 j
3.解决办法# P/ m) k  N" k0 Z* ?& a, T

6 d$ i/ M% Z9 _* H6 b, w首先根据该服务的可执行文件路径属性找到其所属的服务组,例如Alert服务属于LocalService的服务组,然后确定同一组的其他服务的启动帐户,将其修改为相同的启动帐户即可。
3 M; X! m! L  ?& g, K8 `! V+ a% N3 ~5 i+ B6 `" q4 W
7 K. U% Z4 F# u& I7 d  Q; f' l
$ S1 `6 s$ t# x# T/ ]
错误1068:依存服务或组无法启动
$ H# q9 |' t/ R/ c/ F( \1 T& v, _
2 f. `" q% M" n/ v; F* m0 z% e3 \- R1.故障现象% C# A0 S" i: m) u4 S

  [" [8 @3 Y2 v+ N; }: @1 d尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1068:依存服务或组无法启动”,如图8所示。* ?9 [+ Q2 f: M' X: |
* |) K; V  e  V1 Q, ~
: {4 C3 A4 Y; y6 H9 Y& [  u/ [
- A; N4 |2 Z  x) [4 p* a7 `
2.原因分析
6 v. G* x# T7 G0 q( Y: a1 s$ }" n
某些服务依赖于其他服务或者驱动,只有这些依赖的服务或者驱动都启动成功,该服务才能顺利启动,否则就会报1068的错误。; ~! k- t! R# l2 L' p0 Z
7 f9 a3 i8 Z0 u% Y! \# i
3.解决办法
3 m2 R$ }9 T' l  A9 v4 Y- l+ q5 n" V  M( C2 r
首先我们要对这些不能启动的依赖服务或驱动进行排错,通常来说,可能有以下的一些原因:3 l# g4 [4 K2 \/ a

% d( m( x% w) n' ^, N(1) 由第三方应用程序向系统服务添加额外的依赖服务,一旦这些额外的依赖服务出错、或者被删除,而注册表中的相关键值并没有做相应的改动,则会导致问题。
9 H$ q4 P+ t9 n  K1 b2 L9 p+ S+ @' B
(2) 这些依赖的服务或者驱动被标志为禁用。
, r6 h9 U) x, \
  E- c8 u; k; @! |  `7 p对于第(1)种情况,这里有一个实例(来自于微软中文新闻组):
9 ^3 ~+ w: J0 ]( `' p3 E
* F5 a) H, e0 W7 g$ l& @问题:打印机是Legend LX1+1 1201i-2401i,现在无法正常使用,在事件查看器里的错误日志如下:
  i& `+ W# k1 k- ^' H. a5 t: i: Z) G3 m' B
事件来源: Service Control Manager1 R! n7 Q* n. r  |/ S/ H
5 J9 g& M- F6 R1 R! w; Q8 C% f
事件种类: 无  _3 v6 G& H; W/ b# a6 _3 H# y+ K; t

4 H# q5 d( B7 I7 d2 X' ?事件 ID: 70038 z2 @! {5 G& {: K6 x
0 S: \  U% m; v7 R& O1 G$ a( j0 _
日期: 2006-3-22
/ e3 A5 Q" [7 I2 L6 F* R! V& `
事件: 17:57:45
' T. K, E; |( Q' \4 o, J- Q
  [/ I2 g) \0 v/ s4 p3 ~' G用户: N/A7 g4 Q* a2 j  _9 r: W" a

8 B" {( w0 |% f8 T, Z/ Z1 L* b3 a描述: Print Spooler 服务和下列不存在的服务存在相依的关系: LexBceS
6 K1 b$ |9 x9 T6 O! g3 j2 M4 N! y, X* U! x
回答:联想应该是OEM利盟的打印机,所以系统会安装利盟的驱动程序,该第三方的驱动程序会给系统的Print Spooler服务添加一个新的依赖服务LexBceS,由于某种原因,该依赖服务LexBceS破坏,连累Print Spooler服务启动失败。: }7 ]! [, i1 b0 t3 N9 I! m( _

9 X2 q/ Z8 `* B- M可以在命令提示符窗口运行以下命令恢复Windows默认的依赖关系(Print Spooler服务默认依赖RPCSS服务):
3 J4 N: |! h$ x; t+ v- Q% Y& A) F" w% L$ N
sc config spooler depend= RPCSS9 y* T  s+ H0 e/ Y, M7 L

4 a' ^/ Z5 d: v% Y, D当然,也可以打开注册表编辑器,进入以下注册表项:
# i9 l& B/ l1 p  \; I! b& l+ ~& v& F3 ?3 n
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler
5 b. z1 j5 d& y3 f
; q; R! q  L$ r- K# K0 N+ R在右侧的详细窗格里找到DependOnService键值,确保其数值数据为RPCSS,删除其他任何的依赖服务。
% l7 M0 F6 C9 R7 O, q3 ^$ X) D( {/ x1 u! {
错误1747:未知的验证服务8 N2 }; B- H5 I% _' w

  f: e! W4 h! k1 C1.故障现象
" L) m- A6 Q0 ^, x4 w4 w
4 K% E1 d# d3 O6 C" ]# p尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1747:未知的验证服务”,如图9所示。
8 @* {0 y% |' l% ]( V, o. ]1 I$ Q) ~& A1 \
% i( K; n/ u3 K' q6 x
+ I7 I0 B, ~; u  f
2.原因分析
$ n7 J1 Q0 j& F
" [' f0 _! w4 d: y0 `7 x5 V. U未安装Microsoft网络客户端,就会导致某些服务无法启动,这些服务可能是WWW、FTP、IPSec Service等和网络有关的服务。! c6 ?. [5 F- J% t. x7 Q. S
. J! D/ v/ Z8 s$ j9 p
3.解决方法
$ C* {+ q! ^  Y# T1 F- p$ {% V( u& B' `: p4 Q& _, \5 P8 o% n9 {
安装或者重新安装Microsoft网络客户端,重新启动即可解决问题: e4 ^% u4 L- P& d! I: s: g4 Q
回復

舉報

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

本版積分規則


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