作者:棋玉
问题背景:
如果替换过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 的各项参数可以在命令行直接查询: