手动恢复服务

作者:棋玉

问题背景:

如果替换过system 注册表或者意外删除了服务,可尝试通过注册表恢复服务。

具体步骤:

服务对应的注册表路径是HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services<服务名称>,可尝试以下步骤恢复服务:
1.将替换的原始注册表load 起来,查看服务的配置信息

===========

a.cmd 命令行输入 regedit

b.找到HKEY_LOCAL_MACHINE, 然后点击文件,选择加载配置单元。

手动恢复服务

c.找到之前替换的原始注册表,比如system.old, 任意命名(例如test)。
手动恢复服务

d.展开test,查看select 项,current 值为1, 则我们应该去找 ControlSet001.
手动恢复服务

展开ControlSet001,展开services,找到对应服务,以Google 更新服务 (gupdatem) 为例,先确认下各项属性信息
手动恢复服务

2.运行以下命令行创建服务

注意: binpath 对应ImagePath

type 对应类型和注册表键值:

注册表键值(Type) 服务类型
0x00000002 filesys
0x00000001 kernel
0x00000008 rec
0x00000010 own
0x00000020 share
0x00000100 interact

start 对应类型和注册表键值:

注册表键值(start) 启动类型
0x00000000 Boot
0x00000001 system
0x00000002 auto
0x00000003 manual
0x00000004 disabled

error 对应ErrorControl,注册表键值对应如下:

注册表键值(ErrorControl) error 类型
0x00000000 ignore
0x00000001 normal
0x00000002 severe
0x00000003 critical

depend 对应DependOnService,多个服务的话以/分隔。
有些注册表项不在创建服务参数中,之后再手动添加即可。
sc create 的各项参数可以在命令行直接查询:
手动恢复服务

上一篇:分页数/未分页 占用内存高日志收集排查方案


下一篇:服务启动失败“系统找不到指定文件”