欢迎来到天天文库
浏览记录
ID:9951811
大小:159.00 KB
页数:0页
时间:2018-05-16
《windows服务项问题解决》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、在微软新闻组里有很多网友咨询有关Windows服务无法启动的问题,例如无法启动“LogicalDiskManager”服务。这类服务出错的现象往往是五花八门,判断起来比较麻烦,而且有些问题还无法通过查看微软知识库文章得到解决。所以这里进行一个简单的小结,帮助初学者解决常见的服务无法启动的问题。特别提醒在阅读本文的时候,请严格按照故障现象进行比对排错!如果涉及到注册表操作,请务必事先备份相关注册表项,并新建还原点。如果系统无法顺利启动,请按Reset键重新开机,然后按F8,在Windows高级启动菜单上选择“
2、恢复到最近一次的正确配置”菜单项,这样就可以先前的HKLMSYSTEMControlSet00n覆盖错误配置的CurrentControlSet(ControlSet00n中的n由HKLMSYSTEMSelect的LastKnownGood键值指定)。错误2:系统找不到指定的文件1.故障现象尝试在“服务”管理单元窗口手动启动服务是,系统提示“错误2:系统找不到指定的文件”(Error2:Thesystemcannotfindthefilespecified.),如图1所示。2.原因分析两种可能:(1
3、)服务的可执行文件丢失或者被破坏。(2)服务相关注册表键值ImagePath的数值数据被篡改,导致SCM无法加载服务的可执行文件。在“服务”管理单元窗口里可以看到每个服务的可执行文件路径,请仔细检查如图2所示的可执行文件所在路径,如果和参照系统的正确配置不符合,说明注册表键值ImagePath的数值数据有误。如果此处的配置没有问题,则说明可执行文件丢失或者被破坏。3.解决办法以“TaskScheduler”服务为例。如果注册表键值ImagePath的数值数据被篡改,可以定位以下注册表项:HKEY_LOCAL
4、_MACHINESYSTEMCurrentControlSetServicesSchedule在右侧定位到ImagePath键值,将其数值数据修改为正确的值,并重启系统。或者借助sc命令:scconfigSchedulebinpath="%SystemRoot%System32svchost.exe-knetsvcs"如果是可执行文件丢失或者破坏,请用正确的副本进行替换,并重启系统。对于本例来说,可执行文件是svchost,如果该文件被破坏,系统将无法正常运行。错误1053:服务没有及时相应启动
5、或控制请求1.故障现象尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1053:服务没有及时相应启动或控制请求”,如图3所示。2.原因分析如图2所示,可执行文件的附加命令参数配置有误,会导致问题。3.解决办法参照上述的方法,用sc命令或者注册表编辑器,对附加的命令参数进行排错。错误1083:配置成在该可执行程序中运行的这个服务不能执行该服务1.故障现象尝试在“服务”管理单元窗口手动启动服务时,系统提示“错误1083:配置成在该可执行程序中运行的这个服务不能执行该服务”,如图4所示。2.原因分析该故障
6、通常在由svchost服务宿主进程所启动的服务上发生。大家知道WindowsXPSP2最多可以启动七个svchost进程实例(实际上启动六个进程实例),分别负责启动一组服务。每个svchost实例所负责启动的服务由以下注册表项决定:HKLMSOFTWAREMicrosoftWindowsNTCurrentVersionSvcHost其下共有七个键值:DcomLaunch、HTTPFilter、imgsvc、LocalService、netsvcs、NetworkService、rpcss和term
7、svcs。每个键值都定义了一个或者多个服务,也就是对应每个svchost进程实例所能启动的一组服务。本例中“TaskScheduler”服务的可执行程序参数是“svchost.exe-knetsvcs”,对应的svchost进程在启动该服务之前,会先到HKLMSOFTWAREMicrosoftWindowsNTCurrentVersionSvcHost下的netsvcs键值里查找是否有该服务的定义,如果没有,就会出现该故障现象。3.解决办法很简单,首先打开该服务的属性对话框,查看其可执行程序的命令
8、参数(本例是netsvcs),如图2所示。然后进入以下注册表项:HKLMSOFTWAREMicrosoftWindowsNTCurrentVersionSvcHost在右侧定位到对应的键值,本例是netsvcs,在其数值数据里添加该服务名即可,本例是Schedule,如图5所示,并重启系统。提示为什么通常只会启动六个svchost进程实例?都是TermService服务惹的祸!TermService(T
此文档下载收益归作者所有