PowerShell 中刪除 Windows 服務的正確方法
阿新 • • 發佈:2021-02-04
技術標籤:MicrosoftPowershellRemove-Service
作者:www.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-Service
、Stop-Service
而沒有 Remove-Service
顯然是巨硬的失誤。
總結:
功能 | 啟動服務 | 停止服務 | 刪除服務 |
---|---|---|---|
CMD | 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> 中。