删除 Windows 服务的 2 种方法(还有一个可供您尝试的虚拟无用 Windows 服务)
如何从服务列表中移除 Windows 服务(不仅仅是停止/禁用它,而是完全从列表中删除它)
引言
两种完全从服务列表中移除 Windows 服务的方法
InstallUtil.exe /u [FullPath\ServiceName.exe]
SC delete [ServiceName]
我更喜欢使用“SC
”的方式。它更简洁,并且能够真正删除服务,即使某个旧的 [ServiceName.exe]
文件损坏,并且在那种情况下 InstallUtil.exe /u
无法帮助。我实际上遇到过这种情况。
Using the Code
要尝试我的代码示例,请确保您创建与图示相同的文件夹/路径。
创建两个文件夹用于测试:
- c:\temp\ServiceTest
- c:\temp\ServiceTestInstaller
第一个文件夹包含一个虚拟服务(无操作),用于安装/卸载。
第二个文件夹包含供您尝试的脚本。
以下是测试步骤。
步骤 1
右键单击“00_InstallMyService.bat”,并确保选择“以管理员身份运行”选项。
这应该会安装虚拟服务,如下所示
我用红色标记了几个需要您注意的地方:可执行 EXE 文件名、服务名称、显示名称、描述是给定服务的四个不同属性。
稍后在脚本中,您会看到 EXE 名称 和 服务名称 确实很重要。
第二步
右键单击“01_UnInstallMyService.bat”,并确保选择“以管理员身份运行”选项。完成后,返回服务列表,您会看到该服务已完全消失。
它所做的就是这样
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe" /u "C:\temp\ServiceTest\MyServiceAbc.exe"
pause
步骤 3
重复步骤 1 以再次安装该服务。
步骤 4
右键单击“02_UnInstallMyService.bat”,并确保选择“以管理员身份运行”选项。完成后,返回服务列表,您会看到该服务已完全消失。
它所做的就是这样
SC delete MyServiceName
pause
关注点
这些代码已在 Windows 10 和 Windows 2008 R2 环境中进行了测试。
这里没有什么特别的,但了解您的选项始终是好的。
我同时附上了所有代码
- 虚拟服务代码(在 VS 2013 中完成)
- 测试脚本(非常简单)
希望这有帮助!