如何强制卸载Windows服务

Man*_*anu 166 .net windows-services

我使用installUtil.exe安装了一个Windows服务.

更新代码后,我再次使用installUtil.exe安装服务,无需先卸载原始版本.

当我现在尝试卸载该服务时,installUtil.exe成功完成卸载,但仍然显示该服务.

如果我尝试更改其属性,则会收到"服务已标记为删除"消息.

如何强制删除(最好不重启服务器)?

the*_*ill 450

过去让我感到震惊的一件事是,如果你有服务查看器运行,那么就会阻止服务被完全删除,所以事先就这么接近了

  • 我几乎不相信让观众打开会破坏服务的移除 - 多么愚蠢! (66认同)
  • +1,Windows的愚蠢,在Windows服务器上有同样的问题. (8认同)
  • 似乎SysInternals进程资源管理器也锁定了服务(也许还有任务管理器),所以一定要关闭它们! (2认同)
  • 还请确保使用cmd提示符。PowerShell不会显示任何错误,但是不会删除任何一个。 (2认同)

joh*_*han 138

您不必重新启动计算机.以提升模式启动cmd或PowerShell.

sc.exe queryex <SERVICE_NAME>
Run Code Online (Sandbox Code Playgroud)

然后你会得到一些信息.将显示一个PID编号.

taskkill /pid <SERVICE_PID> /f
Run Code Online (Sandbox Code Playgroud)

其中/ f是强制停止.

现在您可以安装或启动您的服务.

  • 这对我不起作用 - 我的服务的pid返回0,它不会让我删除一个关键的系统进程. (35认同)
  • 没有工作,因为PID来了0,这解决了我的问题 - [(SC)DeleteService FAILED 1072](http://stackoverflow.com/a/7202888) (6认同)
  • A +太棒了.使用sc删除然后上面. (3认同)
  • 绝对有帮助!就我而言,没有任何重启工作.甚至没有删除Registry中的服务目录!但有一个问题:如果你在PowerShell中工作,请使用:`sc.exe queryex <SERVICENAME>`.因为`sc`也是`Set-Content`的别名,所以当你使用它时它会失败. (3认同)
  • 除了重启之外的其他一切都失败了 - 非常高兴! (2认同)

小智 94

好吧,你可以使用SC.EXE强行删除任何Windows服务,如果卸载没有任何机会删除.

sc delete <Service_Name>
Run Code Online (Sandbox Code Playgroud)

阅读更多关于"MS Techno Blogging" 从服务MMC强力删除服务的内容

  • 如果打开服务查看器,这将不起作用 (9认同)
  • 如果有对服务打开的句柄,`sc delete`也会报告"服务被标记为删除". (8认同)
  • 谢谢你.请注意,如果"服务名称"与"显示名称"不同,则可以在服务的属性中获取"服务名称". (5认同)

Ken*_*fer 36

我知道这不会有所帮助,但它可能会对将来有所帮助.

我刚刚遇到了同样的问题,关闭并重新打开服务管理器从注册表中删除了两个条目并完成了服务的卸载.

在此之前,刷新服务经理并没有帮助.


Ric*_*ard 13

还值得注意的是:

sc delete "ServiceName"
Run Code Online (Sandbox Code Playgroud)

在 PowerShell 中不起作用,sc 是 PowerShell 中 cmdlet Set-Content 的别名。你需要做:

sc.exe delete "ServiceName"
Run Code Online (Sandbox Code Playgroud)


Aar*_*ker 9

sc delete sericeName
Run Code Online (Sandbox Code Playgroud)

在执行此操作之前,请确保服务已停止.我大部分时间都看过这项工作.有些时候我看到Windows卡在某些东西上并坚持重启.


Alp*_*glu 6

这对我有用:

net stop "MyWindowsService"
taskkill /F /IM mmc.exe
sc delete "MyWindowsService"
Run Code Online (Sandbox Code Playgroud)


inc*_*ete 5

关闭cmd和服务窗口(如果已打开),然后通过右键单击并选择以管理员身份运行再次启动cmd。如果sc delete sericeName不起作用或什么都不起作用。

http://weblogs.asp.net/avnerk/archive/2007/09/05/windows-services-services-msc-and-the-quot-this-service-is-marked-for-deletion-quot-error。 aspx


exp*_*001 5

这对我有用

$a = Get-WmiObject Win32_Service | Where-Object {$_.Name -eq 'psexesvc'}
$a.Delete()
Run Code Online (Sandbox Code Playgroud)