我尝试用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.

问题依然存在。

下一步是什么?


当前回答

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

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.

其他回答

我也遇到了同样的问题,最后我决定终止服务进程。

尝试以下步骤:

获取服务的进程id Sc queryex <服务名> 用 taskkill /F /PID <业务PID> .使用实例

在我的情况下,这是由创建eventLog源时未处理的异常引起的。使用try catch来确定原因。

这对我很有用。

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

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

然后重新安装服务。

这对我来说很管用: 我遇到了同样的问题:我的服务卡在了“标记为删除”中。 -我打开了services.msc 我的服务确实显示为运行,尽管它已经卸载了。 -我点击了停止 收到一条错误消息,表示服务不处于接收控制消息的状态。 尽管如此,服务还是停止了。 —关闭services.msc。 -重新开放services.msc。 -服务消失(不再显示在服务列表中)。

(当时的环境是Windows 7。)

在我的案例中,它在关闭服务后起了作用。检查服务。如果是,请关闭,并在任务管理器中查看是否有服务进程。