我尝试用sc delete <服务名>删除一个Windows服务,并遇到以下错误:

[SC] DeleteService FAILED 1072: 指定的服务已标记为删除。

我已经做了:

Stopped the service, obviously. The sc queryex "<service name>" gives the following result: SERVICE_NAME: Stub service TYPE : 10 WIN32_OWN_PROCESS STATE : 1 STOPPED WIN32_EXIT_CODE : 1067 (0x42b) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0 PID : 0 FLAGS : Ensured that Microsoft Management Console is closed (taskkill /F /IM mmc.exe), Ensured that Event Viewer is closed, Removed the key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<service name> from the registry. Due to this removal, services.msc still shows the service (with a name, but no status or startup type), but the description is “<Failed to Read Description. Error Code: 2 >”. When attempting to view the properties, “The system cannot find the file specified.” is shown five times.

问题依然存在。

下一步是什么?


当前回答

如果@MainMa提供的步骤不起作用,请执行以下步骤

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

2 .如果以上情况

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

其他回答

可能有几种原因导致服务卡在“标记为删除”中。

SysInternals' Process Explorer is opened. Closing it should lead to automatic removal of the service. Task Manager is opened. Microsoft Management Console (MMC) is opened. To ensure all instances are closed, run taskkill /F /IM mmc.exe. Services console is opened. This is the same as the previous point, since Services console is hosted by MMC. Event Viewer is opened. Again, this is the same as the third point. The key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\{service name} exists. Someone else is logged into the server and has one of the previously mentioned applications opened. An instance of Visual Studio used to debug the service is open.

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

protected override void OnStop()

停止服务时抛出错误。将内容包装在try catch中可以防止标记删除错误

protected override void OnStop()
{
            try
            {
                //things to do
            }
            catch (Exception)
            {
            }

}

当我使用应用程序验证器验证我的win服务时,我遇到了这个问题。即使在我关闭App Ver后,我的服务也被阻止删除。只有从App Ver中删除服务才能解决这个问题,并且服务被立即删除。看起来有些进程还在使用你的服务在你试图删除一个之后。

这对我很有用。

打开任务管理器 选择服务选项卡 选择有问题的服务 右键单击并选择“查看详细信息” 右键单击该服务并选择“结束流程树”

结束流程树将结束该流程以及该流程创建的所有流程。

然后重新安装服务。

打开Services控制台也可能导致这种情况。直到关闭该服务,Windows才会删除该服务。