首页 > 编程知识 正文

删除注册表mysql,修复服务被标记已删除

时间:2023-05-03 22:34:58 阅读:134568 作者:1032

如何解决“指定的服务标记为删除”

尝试使用services.msc删除Windows服务,出现以下错误:

[SC] DeleteService FAILED 1072 :

指定的服务被标记为删除。

我已经做了什么?

很明显停止了服务。 services.msc将显示以下结果:

services.msc

确认Microsoft管理控制台(services.msc )已关闭,然后单击,

确保事件查看器已关闭,然后单击、

密钥HKEY _ local _ machinesystemcurrent control setservices _ & amp; lt; 服务名称& amp; gt; 从注册表中。

为了删除,services.msc中包含“&; lt; 无法读取说明”。 错误代码:2&; gt; “。 尝试显示属性时,会显示“找不到指定的文件。 ”显示5次。

问题依然存在。

下一步怎么办?

17个解决方案

989 votes

服务卡变为“删除标记”的原因可能有几个。

系统处理资源管理器打开。 关闭时,服务将自动删除。

任务管理器打开了。

微软管理控制台(MMC )已打开。 要确保关闭所有实例,请运行taskkill /F /IM mmc.exe。

服务控制台打开了。 这和前面的点一样。 因为服务控制台由MMC托管。

事件查看器已打开。 同样,这和第三点相同。

密钥HKEY _ local _ machinesystemcurrent control setservices{ service name }存在。

其他人登录到服务器并打开了上述APP应用程序之一。

用于调试服务的Visual Studio实例已打开。

arsenimourzenkoanswered 2019-01-04t 07336024336044 z

166 votes

也可以通过保持服务控制台打开来实现这一点。 在结束服务之前,Windows不会实际删除服务。

forcedfxanswered 2019-01-04t 07:25:08 z

33 votes

我的情况是关掉服务工作。 检查Services.msc是否打开,如果打开,请将其关闭,然后检查Task Manager服务进程。

sumitagrawalanswered 2019-01-04t 07336025336034 z

33 votes

你好,你好,我有同样的问题。 最后决定杀死服务流程。

尝试以下步骤:

获取服务的进程ID

taskkill /F /PID

杀戮的过程

taskkill /F /PID

alisadrianswered 2019-01-04t 07336026336028 z

8 votes

如上删除注册表项将导致服务停止。 下一步对我有帮助:

任务管理器&; gt; 选择服务标签&; gt; 选择服务&; gt; 右键单击并选择“转至进程”&; gt; 右键单击进程,然后选择“终止进程”

在那之后,服务应该消失

mathart 63 answered 2019-01-04t 07336027:12 z

7 votes

这意味着服务在services.msc中被列为无效。 只需关闭services.msc并以管理员身份重新打开.此服务将不会显示。 使用命令安装服务,然后单击、

installutil "服务之路"

ameypnaikanswered 2019-01-04t 07336027336044 z

6 votes

还有一点需要检查-请看任务管理器-如果其他用户连接到此框,即使他们“断开连接”,也需要实际签名并最终删除服务。

kathygrytaanswered 2019-01-04t 07336028336007 z

6 votes

Windows 7或更高版本(未经验证,但根据Windows Server 2012 R2的最新经验,服务控制管理器) ) SCM )似乎更为严格。

在Windows 7中,您只需要生成另一个进程,但仍然存在服务进程,然后调用error _ service _ marked _ for _ deleteservice

现在我要谈的是Windows API代码,因为我想清楚地概述发生的事情,所以这个序列可能会导致提到的错误:

sc _ handle hscm=open scmanager (nullptr,nullptr,

SC_MANAGER_ALL_ACCESS);

SC_HANDLE hSvc = OpenService(hScm, L"Stub service", SERVICE_STOP | SERVICE_QUERY_STATUS | DELETE);

SERVICE_STATUS ss;

ControlService(hSvc, SERVICE_CONTROL_STOP, &ss);

// ... wait for service to report its SERVICE_STOPPED state

DeleteService(hSvc);

CloseServiceHandle(hSvc);

hSvc = nullptr;

// any further calls to CreateService/DeleteService will fail

// if service process is still around

服务流程在已经报告其SERVICE_STOPPED状态之后仍然存在的原因并不令人惊讶。 这是一个常规进程,其主要线程在其对StartServiceCtrlDispatcher API的调用中“卡住”,因此它首先响应停止控制操作,但随后必须执行其剩余的代码序列。

很遗憾SCM / OS没有为我们妥善处理这个问题。程序化解决方案有点简单和准确:在停止服务之前获取服务可执行文件的进程句柄,然后等待此句柄发出信号。

如果从系统管理角度处理问题,解决方案也是等待服务进程完全消失。

klaus triendl answered 2019-01-04T07:29:14Z

6 votes

这对我有用: - 我遇到了同样的问题:我的服务卡在'标记为删除'中。 - 我打开了services.msc   我的服务确实显示为正在运行,尽管它已经被卸载了。 - 我点击停止   收到错误消息,表示服务未处于接收控制消息的状态。   然而,服务已经停止。 - 已关闭的服务.msc。 - 重新开放的服务.msc。   - 服务已经消失(不再显示在服务列表中)。

(环境是Windows 7.)

balintn answered 2019-01-04T07:29:46Z

5 votes

就我而言,我执行taskkill /f /im dongleserver.exe,其中dongleserver.exe是我程序的exe文件。

然后我就可以重新安装我的程序了。

Sian Chiew See answered 2019-01-04T07:30:17Z

4 votes

就我而言,它是由创建eventLog源时的未处理异常引起的。 使用try catch来确定原因。

Arijus Gilbrantas answered 2019-01-04T07:30:39Z

3 votes

关闭当前打开的每个窗口,然后运行以下命令为我解决了这个问题:

taskkill /F /IM mmc.exe

Tshilidzi Mudau answered 2019-01-04T07:31:04Z

0 votes

如果@MainMa提供的步骤不起作用,请按照以下步骤操作

步骤1尝试从Windows任务管理器或使用taskkill / F / PID终止进程。 你可以通过命令'sc queryex'找到进程的pid。 如果仍然无法卸载,请尝试下一步。

第2步如果上面

运行Autoruns for Windows按名称搜索服务并删除结果。

Charith answered 2019-01-04T07:31:48Z

0 votes

错误的主要原因是过程没有停止。解决它启动任务管理器转到服务,看看你是否仍然能够看到你的服务,而不是去那个服务和结束过程的过程。 比问题将彻底解决。

Gaurav Tyagi answered 2019-01-04T07:32:10Z

0 votes

当我使用Application Verifier来验证我的win服务时,我遇到了这个问题。 即使在我关闭App Ver后,我的服务也被阻止删除。 只有从App Ver中删除服务才能解决问题并立即删除服务。 在您尝试删除某个进程后,某些进程仍在使用您的服务。

vadzvnik answered 2019-01-04T07:32:35Z

0 votes

要遵循的步骤:

步骤1转到位置C: Windows Microsoft.NET Framework v4.0.30319

step-2 run命令:installutil / u full-path / servicename.exe

步骤3关闭服务面板并重新打开它

step-4 run命令:installutil full-path / servicename.exe

Divyang Shah answered 2019-01-04T07:33:34Z

0 votes

最有可能删除服务失败,因为

protected override void OnStop()

停止服务时抛出错误。 在try catch中包装东西会阻止标记删除错误

protected override void OnStop()

{

try

{

//things to do

}

catch (Exception)

{

}

}

e03050 answered 2019-01-04T07:34:10Z

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。