WK綜合論壇, WK综合论坛

查看:1027 回復:0 發表於 2014-9-13 23:22:36
累計簽到:278 天
連續簽到:1 天
跳轉到指定樓層
楼主
發表於 2014-9-13 23:22:36 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
VIP精品區,資源無限好賺金任務區,輕松賺金幣
加入VIP,享受高級特權宣傳賺金又升級,超級棒

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

在阅读本文的时候,请严格按照故障现象进行比对排错!
8 D; ~( n4 J) x+ l  t7 r# f* L. o( k4 a) g+ t4 _
如果涉及到注册表操作,请务必事先备份相关注册表项,并新建还原点。% g3 Z& ]+ y8 i
! g( Y& z! z/ z
如果系统无法顺利启动,请按Reset键重新开机,然后按F8,在Windows高级启动菜单上选择“恢复到最近一次的正确配置”菜单项,这样就可以先前的HKLM\SYSTEM\ControlSet00n覆盖错误配置的CurrentControlSet(ControlSet00n中的n由HKLM\SYSTEM\Select的LastKnownGood键值指定)。* r  P% T" ^. V7 M

& W) q0 ^8 ~5 |( B% K8 H" w错误2:系统找不到指定的文件
( {/ N6 [7 u0 O7 d; m6 d( x
3 x& e' j; ?- O* u, H9 c' D; ~1.故障现象
. ?9 P3 b, a1 b+ E5 `: p& {/ Q0 Q; B/ T& T1 _& l8 }
尝试在“服务”管理单元窗口手动启动服务是,系统提示“错误2:系统找不到指定的文件”(Error 2: The system cannot find the file specified.),如图1所示。3 v" L8 e: R" T2 C5 p8 m
2 f! u# J) o5 e4 \  T
" L; H) t. ?5 W" x0 A& \( m0 _- X
6 n3 S' ^) v0 D6 a7 D  a' H, f9 {
2.原因分析
$ Y, V. G# |9 C  ~, C. m# M9 }2 y& R! Y% V6 `, u
两种可能:
( r$ q4 p; s% A- k+ d! q" G
& t6 r, Q: l1 b3 s  e! R9 {3 d(1) 服务的可执行文件丢失或者被破坏。
! M* C. G: T3 n2 K
* Z0 D. |6 S/ z! |: s: ~( C. |(2) 服务相关注册表键值ImagePath的数值数据被篡改,导致SCM无法加载服务的可执行文件。
# r: j& m7 M3 B1 F5 y6 T8 I% z
( _. P2 z7 X. b* R' g, `6 A在“服务”管理单元窗口里可以看到每个服务的可执行文件路径,请仔细检查如图2所示的可执行文件所在路径,如果和参照系统的正确配置不符合,说明注册表键值ImagePath的数值数据有误。如果此处的配置没有问题,则说明可执行文件丢失或者被破坏。
# m% `) {, D* o& O1 k  W/ h8 ^5 G$ v; d( g" R) S/ w# W# t

- A6 O4 y0 o0 W6 p3.解决办法2 e1 Q$ _) N" s; I- d
$ O# n% I. h7 U4 P5 |
以“Task Scheduler”服务为例。
' h& v1 J) N4 H# t) i4 @& ~& f# X" N
如果注册表键值ImagePath的数值数据被篡改,可以定位以下注册表项:
. Y9 }1 g! \% {, z% s3 U
7 x/ ?! f3 U- u+ e/ _5 }HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule6 q9 d) `- a2 }3 K, q" _

1 q, Q) b8 P4 E9 J5 i/ I9 \1 ]" h在右侧定位到ImagePath键值,将其数值数据修改为正确的值,并重启系统。: w, [) b# q: H

8 X1 F; w& Y- ?6 r9 \, ?' {: t或者借助sc命令:
7 B. D2 g5 q: n; n5 k1 x2 \1 G! v- \4 i! |. E
sc config Schedule binpath= "%SystemRoot%\System32\svchost.exe -k netsvcs"; G9 B, l% @& O

5 d. h+ F- w, K6 V& b: A! a如果是可执行文件丢失或者破坏,请用正确的副本进行替换,并重启系统。对于本例来说,可执行文件是svchost,如果该文件被破坏,系统将无法正常运行。5 T2 U/ |, F3 M, r2 I- R
3 o! ^, `( K# a1 {$ v$ a. u
错误1053:服务没有及时相应启动或控制请求
3 \5 G! ~! K7 k- V' W9 `0 c6 E! b$ F5 @
1.故障现象: }" T' P4 Y/ H6 u; @* @& N. w

; M& u  t$ ^/ ?6 w! {: n尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1053:服务没有及时相应启动或控制请求”,如图3所示。
" O  X: U- \; j, T
) D. o7 x0 P% w' C. l# ?
; w* D+ K' V. q  S0 N( |* j+ g1 ?% x! z
2.原因分析
2 ~6 x0 [9 x+ C  e& g
& a  x' e: }, u( c, o如图2所示,可执行文件的附加命令参数配置有误,会导致问题。  ^6 A9 t/ r: }" E. o0 W# _/ p
0 k6 J, M8 y! t
3.解决办法; w! m0 V" f5 b/ E

/ `8 k& f6 \7 F/ ^& [参照上述的方法,用sc命令或者注册表编辑器,对附加的命令参数进行排错。0 M6 ^6 D, A; p, J1 G: [% T3 j

0 l  d" e5 Z  x" k1 E# }错误1083:配置成在该可执行程序中运行的这个服务不能执行该服务
: [( ]' }, y) H% c$ f0 U+ \4 W& b# o* H
1.故障现象3 Y6 |' H; A+ e; v1 r7 k; n
! ~7 R! P# V* y5 B; P/ ^; L
尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1083:配置成在该可执行程序中运行的这个服务不能执行该服务”,如图4所示。' v+ Y, [. S$ P) E: b8 h6 t

) r- x9 D0 z7 |6 G; V# y5 F" `# \% n# P

: S: R) h- c6 ~1 N9 P2.原因分析6 h4 |$ G7 J4 G) z: N& Z) m! Q
3 _! G4 x; G7 n3 h7 n, ?
该故障通常在由svchost服务宿主进程所启动的服务上发生。大家知道Windows XP SP2最多可以启动七个svchost进程实例(实际上启动六个进程实例),分别负责启动一组服务。每个svchost实例所负责启动的服务由以下注册表项决定:
6 k+ Z$ x- S0 H' j
6 h, }# R5 |8 K: D# f4 `HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost5 s$ \0 i0 j, o

! l' m( E0 O  }7 U其下共有七个键值:DcomLaunch、HTTPFilter、imgsvc、LocalService、netsvcs、NetworkService、rpcss和termsvcs。每个键值都定义了一个或者多个服务,也就是对应每个svchost进程实例所能启动的一组服务。
2 |5 Z; {5 v( g8 O1 v9 b5 V) _2 G# {" y7 T; w6 U( T- j9 z4 R
本例中“Task Scheduler”服务的可执行程序参数是“svchost.exe -k netsvcs”,对应的svchost进程在启动该服务之前,会先到HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost下的netsvcs键值里查找是否有该服务的定义,如果没有,就会出现该故障现象。& A8 [- q; U8 s* _9 t) d) {
0 a" T& h+ i- K3 c0 D# `
3.解决办法6 A' W5 r- `1 M) v; R2 F
5 H0 v- q( |" U5 F% B
很简单,首先打开该服务的属性对话框,查看其可执行程序的命令参数(本例是netsvcs),如图2所示。9 u" O2 k& |, S

& u; n' P( c  s$ u然后进入以下注册表项:7 p$ }2 s  l/ V) y" @( g. |
7 y4 \! X; H  t% `
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost, [/ t! Q, G' K6 O4 J
  j: |! f& b- v+ s% x& `
在右侧定位到对应的键值,本例是netsvcs,在其数值数据里添加该服务名即可,本例是Schedule,如图5所示,并重启系统。
2 }- e( a9 `& _+ ]6 K" ^* W3 Y5 s: P4 d& {+ J

3 e0 h+ b1 x  X4 X- o1 f2 C9 L  {( D
8 c: L% Z+ }* _; r4 N
1 [+ l0 x0 F% y9 J( S提示 为什么通常只会启动六个svchost进程实例?都是TermService服务惹的祸!TermService(Terminal Services)这个服务非常另类,不仅仅出现在DcomLaunch组里,同时还独立出现在termsvcs组里,然而在“服务”管理单元窗口里,该服务的命令行为“svchost.exe -k DcomLaunch”,也就是说实际上并没有一个svchost进程实例负责启动termsvcs服务组!* V7 E; e1 `3 t! z; Y

! O) P5 I# P+ H* K( a: n8 A# v
3 c# H: n+ e& D. P# g错误126:找不到指定的模块
) q' V1 ?5 K( [2 A) P& S
: @& n8 ?$ T% L  A. A( X1.故障现象' I- @% V' t. j/ g. _/ V- R9 B: P

8 C' k# ]8 a/ |) C( a1 P" ?尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误126:找不到指定的模块”(Error 126: The specified module could not be found.),如图6所示。; L/ {' q9 ~' i6 Z+ ]2 X
, n- o5 w) ?% {9 w9 x7 H/ }

& Z0 Q9 @- m0 X; O& \" `, z2.原因分析
0 Z; H. f$ ^% _2 P
6 H3 m6 }: {) w: E+ [; a( w8 J该故障通常在由svchost服务宿主进程所启动的服务上发生。这一类的Windows服务,其实是以dll模块的形式插入某个svchost进程。如果该dll文件被破坏,或者注册表的相关键值被篡改,都可能导致问题。
+ V9 U8 k$ \1 n. `; U
% S2 T5 T( H0 l: _0 ]; K- v$ W" m" U这类服务所对应的Dll文件,是由HKLM\SYSTEM\CurrentControlSet\Services\ServiceName\Parameters注册表项下的ServiceDll键值所定义的(此处的ServiceName是指服务名),如果该注册表键值出错,或者对应的Dll文件被破坏,就会导致这个问题。
- [( p$ z; I" n2 ?
7 H5 D# d& N; j在微软新闻组里有不少网友抱怨无法打开“磁盘管理”窗口,寻根溯源发现是“Logical Disk Manager”服务无法启动所导致。其中有一个case是系统被木马PCShare所感染,木马修改了“Logical Disk Manager”服务的注册表键值,把HKLM\SYSTEM\CurrentControlSet\Services\dmserver\Parameters注册表项下的键值ServiceDll的数值数据指向木马的文件“%SystemRoot%\System32\drivers\Ybfbqufe.sys”,尽管后来利用杀毒软件杀除木马,但是杀毒软件未能处理被木马篡改注册表键值,导致无法打开“磁盘管理”。
$ T" C+ ~( i& @8 X2 ]7 K6 y0 o
注意 不要将该故障和“错误2:系统找不到指定的文件”相混淆!
1 }( X. W7 [7 C
6 b; b" f) ~  i6 C7 i3.解决办法0 f% N3 D' \5 }3 Q. z! l1 o9 P) e
5 ]; Y: e% S- V+ s) _
对于“Logical Disk Manager”服务的问题,在以下的注册表项:
( w: }* S2 J( y% E# D1 P& V' N6 e9 ^+ o$ k* e2 B0 U- B" p4 S
HKLM\SYSTEM\CurrentControlSet\Services\dmserver\Parameters
4 g0 |0 Q2 Z% p5 Z: R0 o
/ m* z3 H: L5 c确保将其下ServiceDll键值的数值数据修改为“%SystemRoot%\System32\dmserver.dll”。7 I! x/ H+ Z) w, H7 a- g0 K
7 d9 x9 n! m8 q- Q$ Z
如果注册表键值没有问题,请确保用正确的文件副本替换原来的dll文件,并重启系统。! a( Z9 P& a2 J6 r* @4 N

% j; I# O! V# E+ |- F$ x2 Q2 B9 d3 Y错误1079:此服务的帐户不同于运行于同一进程上的其他服务的帐户
5 S! c' h* t% n  }0 y  k" C+ s3 u5 H9 p" N) C& k
1.故障现象) i# O# ~; Y. M# p# r

  X; l5 P3 Y! u尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1079:此服务的帐户不同于运行于同一进程上的其他服务的帐户”,如图7所示。
4 _6 d. q. d$ g
& Y" d8 G, j- [5 m7 [/ ?) L2 V$ j, i+ O7 r1 o& e4 S. B
7 P( U3 O3 n9 Q' ?3 f
2.原因分析
/ a' M- t* F  D1 c, D- U( T# U& Z' [7 r
. j& `. y; k3 B该故障通常在由svchost服务宿主进程所启动的服务上发生。前面说过Windows XP SP2最多可以启动七个svchost进程实例,分别负责启动一组服务。一组服务中的每个服务必须和对应的svchost进程实例运行在同一个启动帐户下。9 o) a& n0 o) |4 L8 ?; [
: O) |& ^" m7 L; r) @3 W
例如Alert服务属于LocalService组的服务,其对应的svchost进程实例运行在Local Service帐户下,如果错误地将Alert服务的启动帐户修改为别的帐户,例如Local System帐户,就会报错。. P. L, v+ }  `
+ g# ?$ q( t! I/ L! n
3.解决办法3 V9 m- l6 j* Z! f

" X: n8 w) U( X! f  i( i. c. Q首先根据该服务的可执行文件路径属性找到其所属的服务组,例如Alert服务属于LocalService的服务组,然后确定同一组的其他服务的启动帐户,将其修改为相同的启动帐户即可。0 D9 x0 ^# C# s! ?; f! M' v
. X& T9 q& f5 ^# L( }, u9 j$ t! ?/ @# G
. G$ E( \. u* `& ^
0 s$ {6 Q0 I0 Y) L' H
错误1068:依存服务或组无法启动) o) N5 `! Q( A& L

; E- ^2 @! p! T3 l) o3 M9 K8 ?9 m( w1.故障现象
+ m. O1 e5 H0 F1 z3 |* ^* O' R  }( E7 }" t" J. b
尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1068:依存服务或组无法启动”,如图8所示。- Z* i3 u& K: ~7 K
8 I' q% E& s" q' s) f
; @' {( Z( e. M( }8 Z, j" t2 O- t
/ X) }; ]' E* w/ h) C) M% q
2.原因分析
: H: K/ V( f& N- O+ B, n7 V
' }; I1 U* @" k' Z0 L6 L5 H7 b某些服务依赖于其他服务或者驱动,只有这些依赖的服务或者驱动都启动成功,该服务才能顺利启动,否则就会报1068的错误。& T; {. L1 f9 ]1 a

( b2 v6 X( z5 V+ ]1 C( g4 n% c3.解决办法/ f: H1 c" [5 ^" m
7 P& `4 x- ]# I
首先我们要对这些不能启动的依赖服务或驱动进行排错,通常来说,可能有以下的一些原因:
' U) C( X8 L1 m# s
0 m, s7 Z" Z5 R4 K  T) \0 }' Q! z(1) 由第三方应用程序向系统服务添加额外的依赖服务,一旦这些额外的依赖服务出错、或者被删除,而注册表中的相关键值并没有做相应的改动,则会导致问题。3 |! g( k$ v( x* c2 x& Q
2 M1 a- e8 o( k( x
(2) 这些依赖的服务或者驱动被标志为禁用。
0 Z0 @- d8 z0 I. G6 N
( A2 D$ s8 I' S! l  P. y6 {对于第(1)种情况,这里有一个实例(来自于微软中文新闻组):
  u( P2 W0 `% ?* B/ m1 H, v% M* T+ o" i7 U
问题:打印机是Legend LX1+1 1201i-2401i,现在无法正常使用,在事件查看器里的错误日志如下:
# H4 ~$ T3 w6 [1 |* s; I8 w! y, `4 L$ P5 d4 ^2 y: V
事件来源: Service Control Manager) Q6 Q4 }. {: H- _
& R8 C  B% R7 e+ V: C# T
事件种类: 无
- i# g" I5 c2 i6 X5 w
: [# e+ s# q9 y. |8 w事件 ID: 7003
0 W' s1 R+ ]' V4 Q* r. S' c0 D  h9 Q. V2 ?' G* W! C
日期: 2006-3-225 P5 a6 I: _5 x# ]9 y$ ^
9 E0 v7 d& \& f1 X, c1 @! p! O
事件: 17:57:45
4 R' N9 ~, S& E$ H  ^: y
8 q8 N3 X5 k3 j7 \2 u用户: N/A
. k( D& h+ i+ A6 J9 t9 A9 [, N7 C8 q1 N6 x3 U/ x
描述: Print Spooler 服务和下列不存在的服务存在相依的关系: LexBceS
3 u, l9 [  _% K9 h- c% {$ \8 L# l/ J8 ?% c
回答:联想应该是OEM利盟的打印机,所以系统会安装利盟的驱动程序,该第三方的驱动程序会给系统的Print Spooler服务添加一个新的依赖服务LexBceS,由于某种原因,该依赖服务LexBceS破坏,连累Print Spooler服务启动失败。
0 F+ A) @+ u. M$ |. Q" [: p
' {! m' p# `: D5 x; Z可以在命令提示符窗口运行以下命令恢复Windows默认的依赖关系(Print Spooler服务默认依赖RPCSS服务):
3 K+ k; _! {% o# }6 h% L1 S5 D4 W! }3 k
sc config spooler depend= RPCSS% _" d9 }: i  u# i4 P

& P3 y, h3 c, X/ N* o! T# h当然,也可以打开注册表编辑器,进入以下注册表项:7 N) a, @. Q* I4 }5 k& f1 V& B1 H
& X- g% T4 _# x9 L
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler
9 i" }' r1 R) C; C" T0 b8 u/ _7 Q6 l* v$ T( S
在右侧的详细窗格里找到DependOnService键值,确保其数值数据为RPCSS,删除其他任何的依赖服务。/ C8 T) [) j9 f

' m* R' R' Z% Y1 m错误1747:未知的验证服务
5 Z  f5 a/ b" c" Z0 k+ r
: i2 a2 I6 ?0 T( V* e1.故障现象" }8 V& m4 m# c$ d. p1 _
8 s0 n) I4 F; G$ t% c  J3 `* ]" A
尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1747:未知的验证服务”,如图9所示。
$ o* m0 B/ s# t8 {7 j1 v) u- p8 h
% Y8 V+ ]4 a, e4 d
( F7 f* v3 d: T3 E$ t3 j* D+ l: @% \$ G
6 r* z# _$ I" @9 U: u2.原因分析/ e- G2 V5 p0 u" Q
7 }' ]" \5 C+ e
未安装Microsoft网络客户端,就会导致某些服务无法启动,这些服务可能是WWW、FTP、IPSec Service等和网络有关的服务。
% Y6 N3 E. }$ `2 ]
! q6 D. X4 [/ S# @' K7 P7 \3.解决方法
5 m3 W0 H) K2 A/ q4 o+ K3 T! K0 w* C5 ^  |" c
安装或者重新安装Microsoft网络客户端,重新启动即可解决问题/ N9 G) D9 i! v# {! S6 L6 i- p
收藏收藏 贊贊(0)
把本文推薦給朋友或其他網站上,每次被點擊增加您在本站積分︰1宣傳
桃妖视频站,海量在线视频任你播

回復樓主 親!! 現在是淩晨!妳失眠啦?餓啦?通宵加班?還是想WK啦?

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

本版積分規則

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

發表新帖 返回頂部