如何通过修改注册表来添加删除Windows的系统服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过修改注册表来添加删除Windows的系统服务相关的知识,希望对你有一定的参考价值。

一、删除服务

办法一: 用sc.exe这个Windows命令

开始——运行——cmd.exe,然后输入sc就可以看到了。使用办法很简单:
sc delete “服务名” (如果服务名中间有空格,就需要前后加引号),服务名称可以在服务的属性里找到,不要将服务名称误认为显示名称。
如针对上面的: sc delete KSD2Service

方法二:直接进行注册表编辑
打开注册表编辑器,找到下面的键值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 一般服务会以相同的名字在这里显示一个主健,直接删除相关的键值便可。

方法三、特殊情况

1、如果服务显示的是rundll32.exe,并且这个文件是位于system32目录下,那么就不能删除这个rundll32.exe文件,它是Windows系统的文件。这时只要清除相关的服务就可以了

2、如果一个服务删除了马上又自动建立了,说明后台有进程在监视、保护。需要先在进程管理器中杀掉相应的进程,或者启动后按F8,到安全模式下删除。

二、添加服务
在Windows XP系统的“服务”窗口中并不能添加或删除服务,常用的方法有以下几种:

  方法1:修改注册表
在“开始→运行”中键入“regedit.exe”,打开“注册表编辑器”,展开分支“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services”,在右侧窗格中显示的就是本机安装的服务项。

  如果要新建服务,只须点击“编辑→新建→项”,然后为此项命名,如“test”;然后右击该项,选择“新建→字符串值”或“新建→DWORD值”即可。添加一个服务项目具体需要添加的键值如下:

  “DisplayName”,字符串值,对应服务名称;

  “Descrīption”,字符串值,对应服务描述;

  “ImagePath”,字符串值,对应该服务程序所在的路径;

  “ObjectName”,字符串值,值为“LocalSystem”,表示本地登录;

  “ErrorControl”,DWORD值,值为“1”;

  “Start”,DWORD值,值为2表示自动运行,值为3表示手动运行,值为4表示禁止;

  “Type”,DWORD值,应用程序对应10,其他对应20。

  另外,还要在“test”项下新建一个“Enum”项。按照以上步骤添加QQ程序为服务,重新启动计算机后,打开“服务”窗口,就可以看到刚才添加的QQ服务(图2)

 如果要删除某项服务,只要删除注册表的中相关键值即可,本例中要删除QQ服务,直接删除“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\test”分支即可。
参考技术A sc delete “服务名”???????????? (如果服务名中间有空格,就需要前后加引号),服务名称可以在服务的属性里找到,不要将服务名称误认为显示名称。
如针对上面的: sc delete KSD2Service方法二:直接进行注册表编辑
打开注册表编辑器,找到下面的键值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services???????????? 一般服务会以相同的名字在这里显示一个主健,直接删除相关的键值便可。方法三、特殊情况?????????????????? 1、如果服务显示的是rundll32.exe,并且这个文件是位于system32目录下,那么就不能删除这个rundll32.exe文件,它是Windows系统的文件。这时只要清除相关的服务就可以了???????????????????? 2、如果一个服务删除了马上又自动建立了,说明后台有进程在监视、保护。需要先在进程管理器中杀掉相应的进程,或者启动后按F8,到安全模式下删除。
添加一个服务项目具体需要添加的键值如下: “DisplayName”,字符串值,对应服务名称; “Descrīption”,字符串值,对应服务描述; “ImagePath”,字符串值,对应该服务程序所在的路径; “ObjectName”,字符串值,值为“LocalSystem”,表示本地登录; “ErrorControl”,DWORD值,值为“1”; “Start”,DWORD值,值为2表示自动运行,值为3表示手动运行,值为4表示禁止; “Type”,DWORD值,应用程序对应10,其他对应20。你可以看看

在 Qt 中,如何使用 QSettings 来创建/修改/删除 Windows 注册表项/值?

【中文标题】在 Qt 中,如何使用 QSettings 来创建/修改/删除 Windows 注册表项/值?【英文标题】:In Qt, how can I use QSettings to create/modify/remove windows registry key/value? 【发布时间】:2018-08-25 07:36:18 【问题描述】:

我希望我的 Qt 应用程序能够访问 Windows 注册表。我做了一些研究,QSettings 可能是要走的路。假设我想把我的键/值放在这里:“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\testApp”,我的键是“开始”,值是“4”。

1.如何创建我的键/值?我试过了

QSettings settings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\testApp", QSettings::NativeFormat);
settings.setValue("Start", 4);

但什么也没发生。我认为这可能是因为“testApp”之前不存在?如何创建“testApp”类?

2.如何删除我使用 QSettings 创建的内容?需要删除键/值以及“testApp”类。

谢谢!

【问题讨论】:

【参考方案1】:

我已成功完成创建。创建就像修改一样,如果path不存在,就会被创建。至少在允许的范围内。尝试在 Microsoft/windows 域中设置密钥可能是您的问题的一部分。

首先您设置组织和应用程序名称。然后使用默认构造函数创建的每个 QSettings 都会获取这些信息,当您尝试设置特定值时,它将在注册表中创建结构:

QCoreApplication::setOrganizationName("MyCompany");
QCoreApplication::setApplicationName("testApp");
...
QSettings Settings;
Settings.setValue("start", 4);

将在

下创建具有值 4 的注册表项 start
HKEY_CURRENT_USER\Software\MyCompany\testApp\

之后,每次调用 QSettings::setValue 都会修改给定键的值。

我不知道删除。

【讨论】:

【参考方案2】:

你不能。

QSettings 可以在 Windows 平台上使用 Windows 注册表作为后端来存储其设置。

它不是用于访问注册表的通用 API。

【讨论】:

但是其他应用程序是如何创建/删除注册表项的?谢谢。

以上是关于如何通过修改注册表来添加删除Windows的系统服务的主要内容,如果未能解决你的问题,请参考以下文章

如何通过cmd查看环境变量

加了域的电脑如何绕过登陆修改密码

Windows权限维持

如何删除windows中右键菜单中在visual studio 中打开

如何定制Windows Embedded Compact 7 shell详解

通过修改注册表设置windows环境变量