WK綜合論壇, WK综合论坛

查看:1022 回復:0 發表於 2014-9-13 23:22:36
累計簽到:278 天
連續簽到:1 天
跳轉到指定樓層
楼主
發表於 2014-9-13 23:22:36 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

[技術討論] 打印机经典攻略 [複製鏈接]

在阅读本文的时候,请严格按照故障现象进行比对排错!
' z  z, P4 v9 Q9 @6 U( {7 Q6 O* k9 D/ p" E2 @
如果涉及到注册表操作,请务必事先备份相关注册表项,并新建还原点。3 O$ q0 c9 K, B  `3 @$ |
/ g4 S' ^; N' z& R* L( |
如果系统无法顺利启动,请按Reset键重新开机,然后按F8,在Windows高级启动菜单上选择“恢复到最近一次的正确配置”菜单项,这样就可以先前的HKLM\SYSTEM\ControlSet00n覆盖错误配置的CurrentControlSet(ControlSet00n中的n由HKLM\SYSTEM\Select的LastKnownGood键值指定)。
* X* U( L8 v2 ~/ q. r% M3 r, F; ?+ N& y! Q& j
错误2:系统找不到指定的文件
3 b: p$ a! @+ j( K
  [6 f8 O+ ~/ t9 q1.故障现象1 t4 {* F& d7 a9 m* G: l
  ^  S3 }4 r1 ?3 ^9 X1 h- l
尝试在“服务”管理单元窗口手动启动服务是,系统提示“错误2:系统找不到指定的文件”(Error 2: The system cannot find the file specified.),如图1所示。
  D& }6 L8 J) y  v* [8 U- K. H
9 ]$ H$ c( W) \0 k$ [1 J! D
. X- c2 N3 \2 Q2 {: J8 x  d+ V. q$ p% B8 R
2.原因分析
3 z! f; h7 y# I4 H
$ `# Y5 U1 L8 ~& Q两种可能:/ ?) h4 J- T6 v+ A) i5 U6 q
4 p. k% P; _" Y( O
(1) 服务的可执行文件丢失或者被破坏。" `# u7 C; a) `9 X' H% j1 K% o" @

! j7 u  w9 c+ ]/ H6 r(2) 服务相关注册表键值ImagePath的数值数据被篡改,导致SCM无法加载服务的可执行文件。  J7 W( v3 A2 s9 Z& X

, _) s) P8 Z1 d9 I6 z在“服务”管理单元窗口里可以看到每个服务的可执行文件路径,请仔细检查如图2所示的可执行文件所在路径,如果和参照系统的正确配置不符合,说明注册表键值ImagePath的数值数据有误。如果此处的配置没有问题,则说明可执行文件丢失或者被破坏。
& N' J  T, w( }- K  e
+ U4 c" ~9 c9 r% F9 z) t
3 j* v' ?1 U% A2 I3 x* B2 O" u# U5 r3.解决办法
. }% L. s' v% B& ]0 A2 d! a1 p% k4 X) e: k: ^! B
以“Task Scheduler”服务为例。
) x) a7 P" J; ]2 o# E# E3 J
& Q9 y. R! @5 e* n, a如果注册表键值ImagePath的数值数据被篡改,可以定位以下注册表项:6 e$ o$ }) ~: H* G3 X: y( ^
/ M+ P; }( q, f6 M
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule9 y* j& f* O! d7 _( G

1 z# O+ m7 i) ]+ ~. {# {( R在右侧定位到ImagePath键值,将其数值数据修改为正确的值,并重启系统。
& C4 B, b) w. N/ o% q
* R9 x  c* G" E- Z- I* a# G% t或者借助sc命令:
& v. Y" e3 x, i  }' u! `& U, z9 g: _: K& ~: P& d8 w6 q/ h
sc config Schedule binpath= "%SystemRoot%\System32\svchost.exe -k netsvcs"+ R+ l7 S( L: A0 G' f- X  i

/ L' Q3 _# q6 h8 X7 Z: J1 L" O如果是可执行文件丢失或者破坏,请用正确的副本进行替换,并重启系统。对于本例来说,可执行文件是svchost,如果该文件被破坏,系统将无法正常运行。* l9 l$ x# g4 T* V# O$ J. T9 r5 g2 o

0 k9 o) R' a  }# C/ f3 T错误1053:服务没有及时相应启动或控制请求; Z& q" ~% b6 ]# |: ]9 C+ E
* g2 b2 k4 }5 {! N& l
1.故障现象* }5 w# \! S+ y' u9 C  X  }
' Q5 j+ Y0 Y# C) V& O! e
尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1053:服务没有及时相应启动或控制请求”,如图3所示。
# _# w: G% o. P, [' d8 h# R( D- n+ ^5 O( ]. Z0 [9 g2 @
2 |+ ]; u+ q6 ]  C

3 Q6 `3 I+ B* g* n0 K: Z3 D5 E2.原因分析+ P/ H0 n- [/ ]6 @

; I# W7 e: j7 P$ `如图2所示,可执行文件的附加命令参数配置有误,会导致问题。
' n2 e# d- h9 d; T8 h$ F9 l& `8 w5 z1 L5 G9 i  C2 W" ]$ U  h
3.解决办法/ \4 t1 ]1 ~3 R/ E2 f

3 b  J' e3 m. g$ u% x参照上述的方法,用sc命令或者注册表编辑器,对附加的命令参数进行排错。) G( \* |$ h5 H' }- N9 n( y. A% l
2 X& ]- v2 g3 f; s) \
错误1083:配置成在该可执行程序中运行的这个服务不能执行该服务* j  o8 a9 E* U/ v! y$ n" J0 ^
; y! x1 t8 b$ V" e0 l' K
1.故障现象- q3 _& W3 _* V: C/ p
- A7 k% u" [1 z5 l. B
尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1083:配置成在该可执行程序中运行的这个服务不能执行该服务”,如图4所示。
! s* ]9 [  `+ X& b7 X8 B, Z! n; ]  ?# ~) }+ v: D( m+ `$ m

( l6 L% e3 i; J- D
# l$ Q' L2 e& A) O0 c3 t" t2.原因分析" X) D$ ]+ b0 D9 h9 s; n
! S- w' O2 j% J' m. @. f/ M
该故障通常在由svchost服务宿主进程所启动的服务上发生。大家知道Windows XP SP2最多可以启动七个svchost进程实例(实际上启动六个进程实例),分别负责启动一组服务。每个svchost实例所负责启动的服务由以下注册表项决定:8 n0 \% o3 V3 ?8 O$ w2 m

+ ]7 i, ]- \7 r( W/ XHKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost
$ l1 `  O+ Y  v
  ^' _  x* w1 z3 E$ t. p其下共有七个键值:DcomLaunch、HTTPFilter、imgsvc、LocalService、netsvcs、NetworkService、rpcss和termsvcs。每个键值都定义了一个或者多个服务,也就是对应每个svchost进程实例所能启动的一组服务。
1 Z0 }  W6 p  q6 ?& L
/ O' p- R- U1 q" f7 ?本例中“Task Scheduler”服务的可执行程序参数是“svchost.exe -k netsvcs”,对应的svchost进程在启动该服务之前,会先到HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost下的netsvcs键值里查找是否有该服务的定义,如果没有,就会出现该故障现象。
( T6 k5 K4 ]7 m: f) ~) M$ `6 u) I, L' I' t
3.解决办法: m1 h* |6 Z9 H* e# b0 d/ Q

; e3 Z2 G8 L4 K* P7 E很简单,首先打开该服务的属性对话框,查看其可执行程序的命令参数(本例是netsvcs),如图2所示。
( w; v' {! G7 f. Z: m# O' K6 }/ [. C' y9 T9 v
然后进入以下注册表项:  ~2 E2 x: u( l. d

7 t* t3 m& C5 lHKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost
( c$ ?) F; p, B( U7 h3 M7 c& n2 E, \7 S
在右侧定位到对应的键值,本例是netsvcs,在其数值数据里添加该服务名即可,本例是Schedule,如图5所示,并重启系统。! i% r0 N7 l8 E, z/ ~. `

$ m0 _& G6 D9 n) A
# m" q: O5 A  b3 ?( }/ x# W( C- w: S  e" ~+ j, g
& X) j2 p. R  |& s$ \
提示 为什么通常只会启动六个svchost进程实例?都是TermService服务惹的祸!TermService(Terminal Services)这个服务非常另类,不仅仅出现在DcomLaunch组里,同时还独立出现在termsvcs组里,然而在“服务”管理单元窗口里,该服务的命令行为“svchost.exe -k DcomLaunch”,也就是说实际上并没有一个svchost进程实例负责启动termsvcs服务组!8 \& f  f3 k3 |- q. U6 f5 H, m1 S$ q

1 |4 R6 H' f" a2 d) g4 G5 A$ A$ o3 s3 h
错误126:找不到指定的模块
+ Z! Q5 P, `4 }' A& r% B
7 v* M2 h6 Y, U2 F) X- ^1.故障现象
; V& t6 p6 z! \& q" o. q6 g% q8 _2 _$ N9 e3 }0 W% S* x( ^; T
尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误126:找不到指定的模块”(Error 126: The specified module could not be found.),如图6所示。
8 n: J* y0 F% |3 h7 }! `& p$ p# q. T+ M& a& P1 j( W
( N, w* ], T; h' q! h' j+ Q" N% i* f
2.原因分析7 `5 _+ v/ C& X; q

/ r9 M6 Y! g( @该故障通常在由svchost服务宿主进程所启动的服务上发生。这一类的Windows服务,其实是以dll模块的形式插入某个svchost进程。如果该dll文件被破坏,或者注册表的相关键值被篡改,都可能导致问题。
3 B) x$ |* A# o5 h
- q9 S1 ?! |4 u, d" d$ O0 d% d5 T( j2 ?这类服务所对应的Dll文件,是由HKLM\SYSTEM\CurrentControlSet\Services\ServiceName\Parameters注册表项下的ServiceDll键值所定义的(此处的ServiceName是指服务名),如果该注册表键值出错,或者对应的Dll文件被破坏,就会导致这个问题。" A7 Y5 c% h# @1 I$ C& M( B% c6 c

5 s: ~2 a' @3 q+ N在微软新闻组里有不少网友抱怨无法打开“磁盘管理”窗口,寻根溯源发现是“Logical Disk Manager”服务无法启动所导致。其中有一个case是系统被木马PCShare所感染,木马修改了“Logical Disk Manager”服务的注册表键值,把HKLM\SYSTEM\CurrentControlSet\Services\dmserver\Parameters注册表项下的键值ServiceDll的数值数据指向木马的文件“%SystemRoot%\System32\drivers\Ybfbqufe.sys”,尽管后来利用杀毒软件杀除木马,但是杀毒软件未能处理被木马篡改注册表键值,导致无法打开“磁盘管理”。& i" Y5 i" A, K5 l7 j
5 f  r# i7 c3 V( Q3 x, W
注意 不要将该故障和“错误2:系统找不到指定的文件”相混淆!( ^" u, R. Y* c+ t! P; w

- p9 N1 `  t7 i3.解决办法
0 t/ {3 B$ |& d! U' U$ ?  g
. U; p4 X# d: `5 m+ V0 @7 e对于“Logical Disk Manager”服务的问题,在以下的注册表项:
* ~, R; r) y. \) S* Q( y0 f6 O6 H
/ w; k2 v+ u0 C, t# ZHKLM\SYSTEM\CurrentControlSet\Services\dmserver\Parameters
; w0 o4 K/ T0 J. x: R' x3 |- m- R, `, m7 S0 w& p7 g$ B6 L
确保将其下ServiceDll键值的数值数据修改为“%SystemRoot%\System32\dmserver.dll”。
# m( H% _" L% {, z/ _' e$ j/ j  z: D4 `8 ?3 k7 Z4 r, {
如果注册表键值没有问题,请确保用正确的文件副本替换原来的dll文件,并重启系统。8 j0 J. A0 ^6 O7 c' _/ V; E  Y* _8 a

3 r+ [' U. E8 o( J错误1079:此服务的帐户不同于运行于同一进程上的其他服务的帐户4 L1 j3 Y, |; n

5 J8 N8 M4 J( \  p5 J, B2 j! y1.故障现象1 ?4 i& X  h9 t5 z

7 u. y' r0 j8 z, P' V+ t0 S: i尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1079:此服务的帐户不同于运行于同一进程上的其他服务的帐户”,如图7所示。
1 [4 h3 Y3 `- n" R( D
% ?/ B" G+ [8 {9 v6 z. w4 w, g2 H8 A  d/ y

6 t  U, D5 U  C0 q% y! I1 q2.原因分析
" l6 }( r) ^- ~! \  V# l
4 b7 B$ Y6 p4 l' Q4 J5 D该故障通常在由svchost服务宿主进程所启动的服务上发生。前面说过Windows XP SP2最多可以启动七个svchost进程实例,分别负责启动一组服务。一组服务中的每个服务必须和对应的svchost进程实例运行在同一个启动帐户下。
. h6 f% Z# g& ^# f8 Y) V5 i6 Z2 u/ {# r
例如Alert服务属于LocalService组的服务,其对应的svchost进程实例运行在Local Service帐户下,如果错误地将Alert服务的启动帐户修改为别的帐户,例如Local System帐户,就会报错。8 E  ^0 v; o, x2 A9 \

' W) s- t- f/ h+ `. q3.解决办法$ E" i3 c' |! \1 X+ p

* P" ^, Z% k, K' O6 o首先根据该服务的可执行文件路径属性找到其所属的服务组,例如Alert服务属于LocalService的服务组,然后确定同一组的其他服务的启动帐户,将其修改为相同的启动帐户即可。
& V& O! q; q0 y
; s/ A+ K! j+ I: j( k
: n- L( ?1 U7 a/ o, v( z
; R/ `1 }! ?/ Y: o; t错误1068:依存服务或组无法启动
* G: `5 ~& y& Y- i& C, M! p0 s$ y1 m5 s; v4 O0 H7 T: l/ M
1.故障现象3 @' s* }9 f4 l) R, j/ n
# w) O! o0 y  l4 }; R2 t
尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1068:依存服务或组无法启动”,如图8所示。
) S6 \2 G' N+ p! ]% f
: ^5 H5 q3 l9 m3 o! g: ^" G6 Q. z: H7 L# A) q8 @) E

& {" q+ d. R$ c- G; c" R2.原因分析$ m( A6 x* i# Z' J4 r
7 C% d% G* p: N4 f$ H
某些服务依赖于其他服务或者驱动,只有这些依赖的服务或者驱动都启动成功,该服务才能顺利启动,否则就会报1068的错误。
' a/ a" b9 \) r1 Q0 i% m( J3 ]
: A3 k0 e) a% t) T: f0 b1 u3.解决办法
1 U( N5 I* Z0 H/ D$ R2 ?/ X2 G& l) v# ^; A
首先我们要对这些不能启动的依赖服务或驱动进行排错,通常来说,可能有以下的一些原因:9 y8 m3 ~' p/ h* a) p

3 ~) [' ~; B: i( U' m& b; I/ Y(1) 由第三方应用程序向系统服务添加额外的依赖服务,一旦这些额外的依赖服务出错、或者被删除,而注册表中的相关键值并没有做相应的改动,则会导致问题。
% S, N+ C: E0 i/ C! D6 q
0 T8 X9 v0 n3 S" K* E(2) 这些依赖的服务或者驱动被标志为禁用。) Q; ~7 e. a2 {$ K3 {6 {$ l4 B' \& D

/ X: {. P0 z5 C( B% v' Q对于第(1)种情况,这里有一个实例(来自于微软中文新闻组):
) L6 \. \2 I. v  J1 x, a: F& W- N) W' Y9 X# U
问题:打印机是Legend LX1+1 1201i-2401i,现在无法正常使用,在事件查看器里的错误日志如下:
8 |' R7 c* i9 G# B8 u4 @8 U/ [; T: ^1 z0 [
事件来源: Service Control Manager
- L% |$ [7 W2 }* k
' [( w2 c( J3 ^( h: ^事件种类: 无
8 Y. n3 l* N3 u7 _
  J1 U( c& h% H5 F& N事件 ID: 7003
6 {' x6 T3 @5 K+ _" I- |8 Y& F! B: B2 S# Y5 [: O
日期: 2006-3-22
0 J' L- j. d9 V$ G* j; t1 K1 Z
* |8 P; o5 }! y0 C事件: 17:57:45, I; g  b4 ^* |$ r2 \$ ^3 i

3 I9 N9 d6 Q8 M# u! R用户: N/A2 [4 q; {: r* V" q: g
  z* i' t2 u! r  Q, {; q* D
描述: Print Spooler 服务和下列不存在的服务存在相依的关系: LexBceS5 p9 J7 ^) v9 x: Y; h3 o+ `

) G! w: M5 g! T' v- Z& u# M' @回答:联想应该是OEM利盟的打印机,所以系统会安装利盟的驱动程序,该第三方的驱动程序会给系统的Print Spooler服务添加一个新的依赖服务LexBceS,由于某种原因,该依赖服务LexBceS破坏,连累Print Spooler服务启动失败。4 g1 l) X, a' C
2 M, E3 b+ }- Z% M+ {' y8 V
可以在命令提示符窗口运行以下命令恢复Windows默认的依赖关系(Print Spooler服务默认依赖RPCSS服务):
5 S  v. x9 ]" \2 A# M1 X/ S5 D5 B2 C; K
sc config spooler depend= RPCSS
, c  l5 P1 j/ E$ H- C6 K8 S+ E& ^6 z
当然,也可以打开注册表编辑器,进入以下注册表项:2 j$ J. O  ?' C8 _( |- a; x
( w7 K* L) s- _( h
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler
  h, h$ W; O; j/ K$ [( D) O5 Y
/ F# L' W  ~) N5 ^7 I) L$ u在右侧的详细窗格里找到DependOnService键值,确保其数值数据为RPCSS,删除其他任何的依赖服务。1 a! ~7 W  T- X2 g

! ~. Q$ K8 t( m9 K& Y  r9 p, ~/ e* D6 J错误1747:未知的验证服务8 J! _$ O) M" X) Z6 g
( x) J' v8 k" E% t& n
1.故障现象2 f0 a' P1 a: Q

2 B9 A6 W* d5 h1 _! E' c/ U2 o2 I尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1747:未知的验证服务”,如图9所示。
! c% H/ Y9 q% M+ z, u9 I' T
% c& D& V6 C# D4 D" w
1 b1 A6 g( `- ~6 Q" Q* C* @# @
& y* o0 }7 |5 P4 I  _( O2.原因分析
" w$ l7 X0 E+ k% b+ M
- C3 o/ l6 r$ P5 W( h7 d未安装Microsoft网络客户端,就会导致某些服务无法启动,这些服务可能是WWW、FTP、IPSec Service等和网络有关的服务。
7 ?3 [9 [8 N# {  M7 z2 J! N" @1 u7 r# O1 t$ u
3.解决方法
3 s1 L+ Y3 D' a+ j1 j! [6 e# v9 {# d: D5 f* Q- o% x
安装或者重新安装Microsoft网络客户端,重新启动即可解决问题
# o$ G0 V1 I4 z& V6 j
收藏收藏 贊贊(0)
把本文推薦給朋友或其他網站上,每次被點擊增加您在本站積分︰1宣傳
桃妖视频站,海量在线视频任你播

回復樓主 親!! 下午好,中午養足了精神嗎?讓我們一起渡過下午茶時間,WK有您更精彩!

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

本版積分規則

c重要聲明:本論壇是以即時上載言論的方式運作,WK論壇對所有言論的真實性、立場及版權等,不負任何法律責任。而一切言論只代表發佈者個人意見,並非本網站之立場,讀者及用戶務必自行判斷內容之真實性。 由於本論壇受到「即時上載言論」運作方式所規限,故不能完全監察所有言論,若讀者及用戶發現有內容出現「真實性、立場及版權」等問題,請聯絡我們:[email protected]論壇有權刪除任何言論(刪除前或不會作事先警告及通知)| SiteMap[網站地圖]

發表新帖 返回頂部