PowerShell 中删除 Windows 服务的正确方法

请访问原文链接:PowerShell 中删除 Windows 服务的正确方法,查看最新版。原创作品,转载请保留出处。

作者主页:sysin.org

在 CMD 删除一个 Windows 服务,命令是这样的:

sc delete "Service Name"

在 PowerShell 中执行上述命令并没有报错(没有任何提示),但是实际上服务并没有被删除。

这是因为在 PowerShell 中,sc 是 cmdlet Set-Content 的别名,应该这样使用(加上 .exe):

sc.exe delete "Service Name"

PowerShell v6 开始增加了一个新的 cmdlet Remove-Service,可惜 Windows 10 包括 Server 2016、2019 内置的 PowerShell 5.1 并无法识别这个命令。有 Start-ServiceStop-Service 而没有 Remove-Service 显然是“巨硬”的失误。

总结:

功能 启动服务 停止服务 删除服务
CDM sc start "Service Name" sc stop "Service Name" sc delete "Service Name"
PowerShell 调用 CMD sc.exe start "Service Name" sc.exe stop "Service Name" sc.exe delete "Service Name"
PowerShell Start-Service -name "Service Name" Stop-Service-name "Service Name" Remove-Service-name "Service Name" (慎用!仅在 PS v6 及以上有效)

补充:安装服务

PowerShell:New-Service

CMD:没有相关命令,使用 InstallUtil.exe 实用工具,此工具随 .NET Framework 安装在 %WINDIR%\Microsoft.NET\Framework[64]<framework_version> 中。

参看:如何安装和卸载 Windows 服务

posted @ 2021-12-22 14:35  sysin  阅读(987)  评论(0)    收藏  举报