RPC服务无法启动的解决方法
RPC服务无法启动的解决方法
一、RPC服务无法启动的解决方法
1、 若目标为2000计算机,可以这样来解决:利用远程“计算机管理”,设置目标机上的RPC服务启动类型:自动,然后重启目标计算机。
【说明】顺便对想做这个实验的读者,说明一下如何停止RPC服务:
(1) 在2000上可以将RPC、Plug and Play等服务的启动类型由“自动”改为“禁止”(但不能手动停止,需要设“禁止”后重启机)。
(2)
但在03/XP上无法做到上述这点,启动类型下拉菜单为灰色不可选。要禁止,可以用2000计算机,通过远程“计算机管理”连接过来后,进行修改。也就是说,下拉菜单是否可选,取决于本地操作系统,而非目标操作系统。也可以利用sc
config 命令将RPC服务启动类型设为“禁止”,后面详细介绍。
(3) 实验中要慎重,如果将RPC服务禁用停止后,又没有办法再把它启动起来,你将不得不重做系统。
(4) 我的两名助手在按着我的初稿,做这个实验时,不约而同地犯了同样的错误。因此我觉得:实在有必要把下面的问题及其解决办法说明一下。
问题:在试着禁用RPC服务时,他们都在RPC服务/右键/属性/“登录”标签下,在硬件配置文件Profile
1中将RPC服务禁用了。其结果导致后来即使把RPC服务的启动类型设为自动,但由于硬件配置文件的禁止,也无法启动RPC服务了。出错提示为:“在本地计算机上无法启动RPC服务。错误1058:无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。”
解决:由于此时无法找开对话框,就只能利用注册表了。
A、 开始/运行:regedit,找到下面的项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware
Profiles\Current\System\CurrentControlSet\Enum\ROOT\LEGACY_RPCSS󠧀
将此项下的CSConfigFlags的数据由1改为0(相当于启用)。
说明:也可以干脆删除ROOT下的LEGACY_RPCSS项。
或者:新建一个txt文本文件,内容如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\0001\System\CurrentControlSet\Enum\ROOT\LEGACY_RPCSS]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\0001\System\CurrentControlSet\Enum\ROOT\LEGACY_RPCSS\0000]
"CSConfigFlags"=dword:00000000
然后改后缀名为reg,双击添进注册表。
B、 重启计算机。
2、若目标为03/XP计算机,当RPC服务停止时,使用远程“计算机管理”,无法连接到目标计算机。可以在故障机上本地运行:sc config
rpcssstart= auto,或远程运行:sc \\目标IP config rpcss start=
auto来解决(后面详细介绍)。设成自动后,在“计算机管理”的图形界面下,虽然可以直接点工具栏上的“启动服务”按钮,手动将RPC服务启动起来,但最好还是重启一次机。
【说明】感兴趣的读者,可以自己试一下:虽然此时RPC服务已经启动,但你用远程“计算机管理”仍然连不来,任务栏上也看不到运行的应用程序,需要重启03/XP以后才行。因为有众多的服务依赖于RPC服务,这些服务此时并没有启动起来。
【附加说明】解决RPC服务禁用、停止还可以利用如下的办法。
(1)编辑本地注册表(若目标为2000,远程编辑注册表也可以):HLM\SYSTEM\CurrentControlSet\Services\RpcSs下,设start=2
(即自动)
(2)利用恢复控制台的Enable命令:Enable RpcSs service_auto_start
(3)如果计算机是域成员,可利用组策略来覆盖其本地设置。具体:域或OU的组策略/计算机配置/Windows设置/安全设置/系统服务(注:本地策略无此项)/RPC,选择服务启动模式
(4)附表:服务启动类型在注册表、恢复控制台的Enable命令、Sc config命令中的值。
启动类型 注册表 Enable Sc config
启动 0 Boot 空格Boot
系统 1 System 空格System
自动 2 Auto 空格Auto
手动 3 Demand 空格Demand
禁用 4 使用Disabled命令 空格Disabled
二、rpc服务意外终止,系统重启问题
1.第一种情况,可能是中毒引起的,杀毒、打上冲击波、振荡波的补丁
2.第二种情况,一般都是IE组件在注册表中注册信息被破坏,可以按下面的方法去解决该问题:
(1).在"开始"菜单中打开"运行"窗口,在其中输入"regsvr32 actxprxy.dll",然后"确定",接着会出现一个信息对话 框"DllRegisterServer in actxprxy.dll succeeded",再次点击"确定"。
(2) 再次打开"运行"窗口,输入"regsvr32 shdocvw.dll
(3) 再次打开"运行"窗口,输入"regsvr32 oleaut32.dll
(4) 再次打开"运行"窗口,输入"regsvr32 actxprxy.dll
(5) 再次打开"运行"窗口,输入"regsvr32 mshtml.dll
(6) 再次打开"运行"窗口,输入"regsvr32 msjava.dll
(7) 再次打开"运行"窗口,输入"regsvr32 browseui.dll
(8) 再次打开"运行"窗口,输入"regsvr32 urlmon.dll
如果排除病毒问题后,做完上面的几个IE组件注册一般问题即可得到解决
大家对前一段的“冲击波”蠕虫病毒一定记忆犹新吧!它就是利用REMOTEPROCEDURECALL(简称RPC)服务的DCOM漏洞攻 击基于NT内核WINDOWS2000/XP/2003操作系统,导致RPC服务瘫痪,系统不断重启,很多用户为了躲避冲击波病毒的攻击,禁用了RPC服 务,但当他们想再次启动RPC服务服务的时候却发现找不到该服务属性页或者“RPC服务属性”页的“启动类型”下拉列表框和“启动”按钮变成灰色不能使 用,由于WINDOWS服务的相互“依存关系”,当RPC服务被禁用后,导致很多依赖于RPC服务的系统服务都不能正常运行(图一),如 Messenger服务、WINDOWS INSTALLER服务、COM+ Event System服务;另外,还可能导致某些应用程序运行失败和系统运行异常。难道没有办法启动被禁用的RPC服务吗?当然有,下面我就介绍三种启动该服务的 方法。
方法一:修改注册表法
点击“开始――〉运行”,在“运行”输入框中输入“Regedit”命令,在注册表编辑器中依次找到” HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcSs“,将”Start“项键值修 改为” 00000002“,最后重新启动系统即可。
方法二:使用WINDOWS2000/2003 Resource Kit(资源工具包) sc.exe命令
点击“开始――>运行”,在“运行”输入框中输入“CMD”命令,在“命令提示符”窗口中输入” sc config RpcSs start= auto“,接着系统会显示” [SC] ChangeServiceConfig SUCCESS“信息,这样也可以成功启动RPC服务。
“sc“命令是WINDOWS2000 Resource Kit提供的一个与系统服务通信的命令,”sc config“就是其中的一个子命令,用来修改配置注册表中或服务数据库中的服务项目;”RpcSs“为RPC服务的服务名,”start“是sc config命令的其中一个参数选项。
“sc config“命令使用格式:
sc <server> config [service name] <option1> <option2>...
参数选项:
start= <boot|system|auto|demand|disabled>
其中,“server“为服务器名,该命令在本机上使用,此选项可以省略,默认在本机上执行该命令,” start“参数选项有”boot、system、auto、demand、disabled“五种启动类型,其中” auto、demand、disabled“分别对应”自动、手工、禁止“。
小提示:要想使用“sc“命令必须安装WINDOWS2000/2003资源工具包,否则就无法使用该命令。
方法三:使用Windows 2000/XP故障恢复控制台enable命令
以Windows XP系统为例,使用安装光盘启动故障恢复控制台。在光驱中插入一张Windows XP的安装光盘,并且在BIOS参数中设置为从CDROM启动,启动电脑后,系统进入到Windows XP安装界面选项,按下“R”键选择 “要使用”故障控制台“修复Windows XP安装,请按R”,然后系统登录到故障恢复控制台。
在故障恢复控制台下,输入“enable RpcSs service_auto_start”命令,然后再输入“exit”命令,重新启动系统以正常模式登录后,就成功的启动RPC服务。
“enable”是故障恢复控制台提供的一个用来启动系统服务和设备驱动程序的命令,它只能在故障恢复控制台下使用。
命令格式:
enable {service_name | device_driver_name} [startup_type]
参数说明:
service_name 启用的系统服务的名称。
device_driver_name 启用的设备驱动程序的名称
startup_type 为服务或设备驱动程序指派的启动类型
其中“startup_type”参数有“SERVICE_BOOT_START、SERVICE_SYSTEM_START、 SERVICE_AUTO_START、SERVICE_DEMAND_START”四种启动类型,其中,前两种启动类型通常用于配置加载设备驱动程序, 后两种启动类型对应于服务启动类型中的“自动、手动“。
介绍了“enable“命令,我们不得不提”disable“命令,它用来禁用系统服务和设备驱动程序的,将它们的启动类型设为“ SERVICE_DISABLED”。要想禁用RPC服务,只要在故障恢复控制台下输入”disable RpcSs”命令即可,
错误代码8004E00F-COM+无法与Microsoft分布式事物协调程序交谈
MS DTC 日志被误删除了。
使用msdtc -resetlog 命令创建日志文件。
再次启动COM+不再提示错误信息,至此,故障现象全部排除!
以下几点需要注意的:
1、不要随便轻易清空事件日志中的事件记录,很多故障现象需要从这个里面下手找原因;
2、COM+程序的用户权限和用户启动权限很重要,应注意检查。
3、系统重要文件(如SAM)不可轻易删除,如使用外部程序修改注册表或SAM表信息以获得管理员权限。但千万不要删除该文件。

浙公网安备 33010602011771号