WK綜合論壇, WK综合论坛

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

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

在阅读本文的时候,请严格按照故障现象进行比对排错!! t3 y. ^/ k/ W7 D+ _/ _. ~! s
4 d' Y; }, a3 e3 a
如果涉及到注册表操作,请务必事先备份相关注册表项,并新建还原点。8 T9 s; I) T+ M2 `
  F2 k+ M2 b: ]0 ^. V& }
如果系统无法顺利启动,请按Reset键重新开机,然后按F8,在Windows高级启动菜单上选择“恢复到最近一次的正确配置”菜单项,这样就可以先前的HKLM\SYSTEM\ControlSet00n覆盖错误配置的CurrentControlSet(ControlSet00n中的n由HKLM\SYSTEM\Select的LastKnownGood键值指定)。
, i# E  W/ L* D# y+ ]$ E/ Y$ J% l. [# u! d9 k4 |6 q
错误2:系统找不到指定的文件7 v+ D3 Z7 e9 i$ @! d, S8 y# J+ Q

5 y+ l% s' g  W& L1.故障现象
, C7 q+ F* y* H3 q8 i; `: r
1 s! Q4 `! O/ x) A' B, _+ G! L  F尝试在“服务”管理单元窗口手动启动服务是,系统提示“错误2:系统找不到指定的文件”(Error 2: The system cannot find the file specified.),如图1所示。9 C0 M% M9 n5 r* `1 J
6 n& `3 N1 P: }5 z: c4 \

3 r3 A& z; F  Q) L5 L/ x9 s$ e& }( Q  v
2.原因分析
) v4 q. m4 |5 G
( s+ ^5 Z* ]2 [- o  B$ x8 w两种可能:. g! v3 U3 J, y/ K: e
8 a( k* U' F/ D- b8 H7 d! D
(1) 服务的可执行文件丢失或者被破坏。1 Q. ?2 E2 F$ m+ W! e; G: O3 G
( a7 m. m4 c* q! {* R  o
(2) 服务相关注册表键值ImagePath的数值数据被篡改,导致SCM无法加载服务的可执行文件。
0 s/ t$ y4 P# ^, R2 c5 g; `0 a; }$ _: j2 D3 g
在“服务”管理单元窗口里可以看到每个服务的可执行文件路径,请仔细检查如图2所示的可执行文件所在路径,如果和参照系统的正确配置不符合,说明注册表键值ImagePath的数值数据有误。如果此处的配置没有问题,则说明可执行文件丢失或者被破坏。
# i8 n. V2 X% H1 H5 {/ H, }' Z
0 d3 a) X) P8 o( W% P
8 b" H, E7 z  j  E3 e6 d! g, R7 Y3.解决办法# H  m- H6 s* u+ I; g" T& F

. D# x$ t+ O% P2 _以“Task Scheduler”服务为例。0 }' |& v  D( T' q6 U

8 N6 R; k+ M8 O) Q9 m如果注册表键值ImagePath的数值数据被篡改,可以定位以下注册表项:2 F; P+ f4 M' w9 g( z
& Z3 W  h/ B/ F$ S% H9 W; V2 X: \3 o
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule
. G0 a" f4 @3 ]3 h3 e# }2 |- y0 v8 A) b0 p. v( ?1 y
在右侧定位到ImagePath键值,将其数值数据修改为正确的值,并重启系统。
' v; x6 y' a+ ~; R4 c/ K5 H) d$ V* i
或者借助sc命令:4 A0 P# Y2 U/ {4 C# j8 Z5 \3 M
' x6 b% i0 H1 @
sc config Schedule binpath= "%SystemRoot%\System32\svchost.exe -k netsvcs"2 Y- N; c% ?+ B% S: n
. M) F! C9 K8 O8 M- l( Q
如果是可执行文件丢失或者破坏,请用正确的副本进行替换,并重启系统。对于本例来说,可执行文件是svchost,如果该文件被破坏,系统将无法正常运行。0 d8 A+ U  i9 F* m# N) c3 w' w2 ^/ w$ M

! R4 }5 B. _4 b8 T错误1053:服务没有及时相应启动或控制请求
. z1 J* N1 T' R/ [: l8 h8 m7 y& q# N2 _: \
1.故障现象# \- g; t4 w- w$ r$ k+ W- M) B3 u. G
/ w' r' i8 `4 i! {% D/ n
尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1053:服务没有及时相应启动或控制请求”,如图3所示。
5 A" a; k! \, y# b, ]3 j" p0 H, i/ p

4 L5 s$ q% F: S4 {5 g6 u/ F* j9 h
/ `. B! U* W5 g2 Z" n. Y* ?2.原因分析+ t& |* Q( l$ @. N

2 x( z! _) d0 t如图2所示,可执行文件的附加命令参数配置有误,会导致问题。7 V. Z/ O3 J8 o9 I" {/ U2 R) X9 W
  j. x) G9 \! n! L7 T5 G: ?
3.解决办法
  q. }' N5 ~  S4 C
; ^: C9 M1 ^. @参照上述的方法,用sc命令或者注册表编辑器,对附加的命令参数进行排错。
5 D3 C. Z& A6 y% j4 V6 P! _2 Q6 H: O  a+ h- F
错误1083:配置成在该可执行程序中运行的这个服务不能执行该服务
% C) v% `/ Z. M2 R% }  G/ N& e- m5 i, T+ Q6 d6 A3 }
1.故障现象
! x6 J' j. R! S7 J, y0 L  e8 V8 C4 b$ C; k1 z
尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1083:配置成在该可执行程序中运行的这个服务不能执行该服务”,如图4所示。7 P  a7 D- e* k, T; l9 C

# D. U' p, L. B5 S8 J  s# k% F7 ]
! e% a/ W; b* v8 \7 V0 D
: o- h% c) I8 z# ]2.原因分析2 S" ~5 F" v! \$ w# ], x! @

8 g0 [+ U4 U9 c  e) @该故障通常在由svchost服务宿主进程所启动的服务上发生。大家知道Windows XP SP2最多可以启动七个svchost进程实例(实际上启动六个进程实例),分别负责启动一组服务。每个svchost实例所负责启动的服务由以下注册表项决定:2 m( ~  a. w7 Z5 u3 c3 n! I
* ~7 ]4 G! ^5 L/ k2 c0 }
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost" m, X6 f$ H# |2 \  V
) K/ f# O" C7 \. r
其下共有七个键值:DcomLaunch、HTTPFilter、imgsvc、LocalService、netsvcs、NetworkService、rpcss和termsvcs。每个键值都定义了一个或者多个服务,也就是对应每个svchost进程实例所能启动的一组服务。
0 m% W) }0 T* S# I% r: s+ Q0 I- H* L3 H& U0 E, t3 ]1 c0 K
本例中“Task Scheduler”服务的可执行程序参数是“svchost.exe -k netsvcs”,对应的svchost进程在启动该服务之前,会先到HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost下的netsvcs键值里查找是否有该服务的定义,如果没有,就会出现该故障现象。+ G6 b+ M% y. `2 f( f# k; D
+ s$ t6 J( p' @9 J+ {  G& d4 k
3.解决办法0 f7 y$ @' ?) z( @

% i2 d! h3 U3 a! \很简单,首先打开该服务的属性对话框,查看其可执行程序的命令参数(本例是netsvcs),如图2所示。6 a, c6 \7 E+ @" ~3 W* e/ a2 z

. O+ `) Q. }0 P' i' P1 o然后进入以下注册表项:2 M% h- l  K, D/ _" V; B% e

" Q, x0 F* J; X2 u, ?3 ]( THKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost: @& G5 ~& O: C& S
: b* h4 `8 T0 X) j& y7 }  s. O
在右侧定位到对应的键值,本例是netsvcs,在其数值数据里添加该服务名即可,本例是Schedule,如图5所示,并重启系统。
: d4 T7 I4 C- ]5 {$ ?$ T' j" V! d3 n4 T# r! Y; A

  T# n8 S, L- ~/ O7 a4 f+ m9 y5 M1 }: W. @% O% N0 X
  }( y0 f  [' B$ v* F
提示 为什么通常只会启动六个svchost进程实例?都是TermService服务惹的祸!TermService(Terminal Services)这个服务非常另类,不仅仅出现在DcomLaunch组里,同时还独立出现在termsvcs组里,然而在“服务”管理单元窗口里,该服务的命令行为“svchost.exe -k DcomLaunch”,也就是说实际上并没有一个svchost进程实例负责启动termsvcs服务组!% }8 H& \) p! T( g/ k

% P; Z' z+ P6 F' d* i, F; S1 n8 e, _5 Q5 K
错误126:找不到指定的模块
6 ^, o6 B6 Y' I3 j9 r
3 ^9 P. w" P6 i" s: |1.故障现象$ q5 K3 b8 z5 @" a
7 m) n7 X3 q& B% T% G
尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误126:找不到指定的模块”(Error 126: The specified module could not be found.),如图6所示。  n7 O0 U! D/ O5 R+ {' _

- @* u% Y3 {6 e7 a, h2 j- a8 J  k% c1 M' B9 ?
2.原因分析# ?: s7 l8 @8 p" i0 M; A: ]+ y
* u+ [$ x! w% _5 A/ e
该故障通常在由svchost服务宿主进程所启动的服务上发生。这一类的Windows服务,其实是以dll模块的形式插入某个svchost进程。如果该dll文件被破坏,或者注册表的相关键值被篡改,都可能导致问题。4 i; E+ \+ d+ D+ a2 a" `6 ?
; ], f$ }! Z$ Q; S
这类服务所对应的Dll文件,是由HKLM\SYSTEM\CurrentControlSet\Services\ServiceName\Parameters注册表项下的ServiceDll键值所定义的(此处的ServiceName是指服务名),如果该注册表键值出错,或者对应的Dll文件被破坏,就会导致这个问题。
3 g1 Q3 `, Y  u+ t& x1 P& E  S  C& w, w* s. k) M; h& P; a( u
在微软新闻组里有不少网友抱怨无法打开“磁盘管理”窗口,寻根溯源发现是“Logical Disk Manager”服务无法启动所导致。其中有一个case是系统被木马PCShare所感染,木马修改了“Logical Disk Manager”服务的注册表键值,把HKLM\SYSTEM\CurrentControlSet\Services\dmserver\Parameters注册表项下的键值ServiceDll的数值数据指向木马的文件“%SystemRoot%\System32\drivers\Ybfbqufe.sys”,尽管后来利用杀毒软件杀除木马,但是杀毒软件未能处理被木马篡改注册表键值,导致无法打开“磁盘管理”。
2 C$ h/ N  L3 C
. h% |9 ]1 Y8 J2 q注意 不要将该故障和“错误2:系统找不到指定的文件”相混淆!
* v, v- A  x& o6 d* t
* z2 G; `2 q; z3.解决办法
  [3 o$ f- I# k3 s( ]- w8 |" X& H1 G4 b2 o
对于“Logical Disk Manager”服务的问题,在以下的注册表项:2 Q- j5 V. e/ R4 }  |; ~5 D7 ?9 d

4 H. K. m  r; M* }7 |; F- s" nHKLM\SYSTEM\CurrentControlSet\Services\dmserver\Parameters
4 u; _5 ]$ x7 G) q
; ^* u( o: Z$ I& D: c! z  w$ b确保将其下ServiceDll键值的数值数据修改为“%SystemRoot%\System32\dmserver.dll”。
, P5 _1 n  |) W& [$ v# d0 Z) Y, b+ }! V6 C% [$ D( O
如果注册表键值没有问题,请确保用正确的文件副本替换原来的dll文件,并重启系统。+ l. F& G! P6 y" Y) F, a8 k) M

- a5 I# T8 y/ t5 q+ Q3 X  k& e错误1079:此服务的帐户不同于运行于同一进程上的其他服务的帐户
0 J$ L9 M: a, m& A8 y  {, S. [' c; s0 t$ P$ f
1.故障现象
* c) n; z" d$ y! Q7 V6 ^% O# H5 [
% n0 j; ], ?/ s! S; _尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1079:此服务的帐户不同于运行于同一进程上的其他服务的帐户”,如图7所示。
. P1 E# }9 L! e) n- R3 ?9 C- z  g. N1 g- M/ @0 ~8 f
; L5 u( C! A3 d/ o  g# ?6 m) R7 R
5 |. u% @2 Q+ D+ Y
2.原因分析
* j0 i# Z/ ^7 ^8 i9 y% M7 U' X5 U% H% f5 _: p
该故障通常在由svchost服务宿主进程所启动的服务上发生。前面说过Windows XP SP2最多可以启动七个svchost进程实例,分别负责启动一组服务。一组服务中的每个服务必须和对应的svchost进程实例运行在同一个启动帐户下。
1 i' ~  p( I- h! W& D2 I8 H" M& \: @5 x% G7 [
例如Alert服务属于LocalService组的服务,其对应的svchost进程实例运行在Local Service帐户下,如果错误地将Alert服务的启动帐户修改为别的帐户,例如Local System帐户,就会报错。% b- H: g& D- X' B3 w9 A4 v# V% {

1 k* Q$ j  V$ h3.解决办法& m  p% e7 k1 X5 W7 u6 W2 u+ `

+ ?6 g# L! S( H9 ?5 x首先根据该服务的可执行文件路径属性找到其所属的服务组,例如Alert服务属于LocalService的服务组,然后确定同一组的其他服务的启动帐户,将其修改为相同的启动帐户即可。# r! p" }9 p* R* S7 `) ]  e' B

: s8 B; |9 B  S* A9 W, e$ o) u. I( Q6 a) `) E3 b

$ ?* x) M; r7 M( }% }4 n+ C# k8 ~错误1068:依存服务或组无法启动) k1 z6 `3 I' j7 N/ L; s0 O
0 K. O, v/ R: q( V
1.故障现象# U! U+ ~6 u4 f9 K; P
* m  W" v- ~4 g" m! s3 q. C9 B
尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1068:依存服务或组无法启动”,如图8所示。
3 D- R- E- L% O( Z0 s) o& W, P# i* I) [7 ~0 Z8 o5 D4 z, Y

; j* `, ?" g* x  `% c. Y4 d* j2 U# f) \/ C1 G( H/ ^
2.原因分析
9 i8 A, O/ \  d- {) U3 z6 i! S
; Q8 @0 r1 e" g5 C9 j2 B( ?某些服务依赖于其他服务或者驱动,只有这些依赖的服务或者驱动都启动成功,该服务才能顺利启动,否则就会报1068的错误。
% @0 t/ d9 R( j4 v, w' c
9 c$ ^/ z, w; s0 E+ ?0 r4 f5 [) v6 `: G3.解决办法) E. O& l5 t' ~7 e% G
1 D4 e" c; P" a3 M9 ^& [: s
首先我们要对这些不能启动的依赖服务或驱动进行排错,通常来说,可能有以下的一些原因:. r2 v+ x; ^! b
5 d- z* B7 o+ N7 g; P
(1) 由第三方应用程序向系统服务添加额外的依赖服务,一旦这些额外的依赖服务出错、或者被删除,而注册表中的相关键值并没有做相应的改动,则会导致问题。
8 B& e* I2 ~  C
1 Q& W0 z$ D& S3 K( v(2) 这些依赖的服务或者驱动被标志为禁用。# h' u+ q; R2 A1 l
% }% A& X& _7 S$ P
对于第(1)种情况,这里有一个实例(来自于微软中文新闻组):5 q6 ^7 y/ `: k
5 a5 t4 g  R% |
问题:打印机是Legend LX1+1 1201i-2401i,现在无法正常使用,在事件查看器里的错误日志如下:
1 j- k: C0 c# C# |+ ?& |7 {
' H! j% j# T0 u事件来源: Service Control Manager2 t% `; l- R5 K' Z

; W! w( p# k$ a事件种类: 无) N% e7 F8 s' q) P- E! T; g6 s
% ]% D) \! y6 D  m, ^, e% i8 Z% T
事件 ID: 7003
3 f! l# D$ \" ]) Z
. T6 B3 m9 g  X; a0 m6 j- }5 H日期: 2006-3-22! G1 j6 `6 z- p- n" ?( i

# f; o: ^- t' A0 v% }事件: 17:57:45
1 |5 x; t. G8 i- l2 Z% R
6 ^* j7 h; L$ _& Q1 ~: F7 k' E: ^用户: N/A, h1 e% C5 U1 d1 ^& t9 u) ~  ?6 O

5 F; P$ F: |8 R描述: Print Spooler 服务和下列不存在的服务存在相依的关系: LexBceS
4 k" H. p7 X2 ?
3 `# e* Y7 j; `  D' b  S/ l回答:联想应该是OEM利盟的打印机,所以系统会安装利盟的驱动程序,该第三方的驱动程序会给系统的Print Spooler服务添加一个新的依赖服务LexBceS,由于某种原因,该依赖服务LexBceS破坏,连累Print Spooler服务启动失败。
* d9 }: `- m; }" _
. U- a, h. I, ]* T; {0 b9 i可以在命令提示符窗口运行以下命令恢复Windows默认的依赖关系(Print Spooler服务默认依赖RPCSS服务):
( {9 X8 [% N) n$ \- w4 D
* f" W( m3 V+ p0 W1 Gsc config spooler depend= RPCSS
1 k( P! K3 i: `5 W0 b& Z# M6 ?
3 O' V) Z) r3 O% w' {$ @当然,也可以打开注册表编辑器,进入以下注册表项:
2 [# j# l, T& j4 A
0 S" f! [3 q& U% T9 AHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler
8 j6 Y" [0 t; T+ ~; g7 ]
% u: x3 @! F' P' q7 R! A, F" ~在右侧的详细窗格里找到DependOnService键值,确保其数值数据为RPCSS,删除其他任何的依赖服务。
% o2 w# b% e2 U
) B& Y: [: d. ~0 x8 T错误1747:未知的验证服务
/ G5 y3 r* u& h2 |! y7 M* ~% _* [( z3 b6 V0 N
1.故障现象! ?. i/ Y' ~3 d% e3 V0 u( L1 e* q

- Y" U, p% l) F) W1 L! c# c6 [尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1747:未知的验证服务”,如图9所示。
$ P# [  d1 }9 X; s$ Z
+ S2 Y' ~" X% J4 G$ M( ^! Q- A8 B  m- k& @. d$ A# ]

+ Y" A7 }1 [4 {! F6 E9 D" `2.原因分析# _) x9 K' F0 A7 l5 ?$ d

  }0 y- e' Z( r; k6 z# o! Q6 s未安装Microsoft网络客户端,就会导致某些服务无法启动,这些服务可能是WWW、FTP、IPSec Service等和网络有关的服务。# [  N( j0 C1 g9 t6 {6 q
/ G* @/ e3 ]6 F% v
3.解决方法5 w( y5 t& n- |! O5 x2 v

1 B6 w) B7 n6 k  l0 M/ a安装或者重新安装Microsoft网络客户端,重新启动即可解决问题7 x, S- o2 g$ W( q8 _+ x
收藏收藏 贊贊(0)
把本文推薦給朋友或其他網站上,每次被點擊增加您在本站積分︰1宣傳

回復樓主 親!! 早上好! 心底有WK、心情就會飛翔,心中要個希望、笑容就會清爽!

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

本版積分規則

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

發表新帖 返回頂部