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

问题依然存在。

下一步是什么?


当前回答

出现错误的主要原因是进程没有停止。 要解决这个问题,启动任务管理器,转到服务,看看你是否还能看到你的服务,然后转到该服务的进程,结束进程。这样问题就完全解决了。

其他回答

有时,在通过PowerShell远程会话脚本删除服务时可能会发生这种情况,特别是当您试图多次删除服务时。在这种情况下,尝试在删除之前重新创建会话:

Remove-PSSession -Session $session
$newSession = New-PSSession -ComputerName $Name  -Credential $creds -ErrorAction Stop
Enter-PSSession $newSession

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

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> .使用实例

这意味着服务在services.msc中仍然被列为禁用。 只要关闭服务。MSC并以管理员身份重新打开… 该服务将不会被列出。现在,使用命令安装服务,

安装“服务路径”

以下步骤:

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

步骤2执行命令:installutil /u full-path/servicename.exe

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

步骤4执行命令:installutil full-path/servicename.exe