題 從命令行禁用Windows服務


我想禁用Windows服務,但我不想:

  1. 打開“服務”管理控制台
  2. 滾動到服務名稱
  3. 右鍵單擊“屬性”(或雙擊)
  4. 將“啟動類型”更改為“已禁用”
  5. 應用
  6. 點擊“停止”

我不想 刪除Windows服務 但相反,只需禁用它。


46
2017-08-10 14:58


起源


services.msc,鍵入服務名稱,點擊右鍵菜單鍵,點擊鍵選擇停止,點擊回車。 - Tom Wijsman
OP沒有重複,因為OP打算停止並禁用自動啟動 - Alfabravo
@TomWijsman通常指的是“命令行”時沒有鼠標,因此從鍵盤導航GUI不能回答我的問題 - Kevin Driedger
@KevinDriedger:我建議一種方法來縮短步驟,減少鍵數而不是答案。 - Tom Wijsman


答案:


sc config "Name of Service" start= disabled
sc stop "Name of Service"

空間 之後 ”start=“很重要

您可以通過雙擊“服務”屏幕上的服務來查看服務名稱:

Service Name


79
2017-08-10 14:59



+1表示重要的空白;從來沒有見過這樣的東西......但是 sc 如果沒有等號後的關鍵空間,命令之前,命令將無法正常工作 - JonathanDavidArndt


除了Kevin的回答,如果您需要控制多個服務,或者根據某些條件選擇它們,您可以使用 wmic。 簡單地用於僅停止1個服務(在我的示例中為Sqlwriter)將是:
wmic service where name='SQLWriter' call ChangeStartmode Disabled

但該工具功能更強大,例如為所有服務設置禁用模式,標題從SQL開始,但尚未禁用,您可以說:

wmic service where "caption like 'SQL%' and  Startmode<>'Disabled'" call ChangeStartmode Disabled

11
2017-08-10 15:44





SC STOP "<nameservice>"

SC CONFIG "<nameservice>" START= ( BOOT, 要么 SYSTEM, 要么 AUTO, 要么 DEMAND, 要么 DISABLED, 要么 DELAYED-AUTO )

鏈接: Sc配置


6
2018-06-09 16:49



這與五年前的最高投票答案有何不同? - Greenonline
@Greenonline:實際上它有所不同,Marc提供了完整的參數列表以及幫助頁面的鏈接。不要投票有用的東西。 - SoLaR


引自 KB248660

Microsoft Windows NT資源工具包中的Reg.exe實用程序必須是   安裝在您的計算機上。

使用更改本地計算機上的服務的啟動值   在命令行中,在命令提示符下鍵入以下內容   按ENTER鍵:REG UPDATE   HKLM \ SYSTEM \ CurrentControlSet \ Services \ servicename \ Start = X where   servicename是註冊表中顯示的服務名稱   和X是2,a 3或4(代表自動啟動,   手動啟動或分別禁用)。

通過更改遠程計算機上的服務的啟動值   在本地使用命令行,在命令中鍵入以下內容   提示並按ENTER鍵:REG UPDATE   HKLM \系統\ CurrentControlSet \服務\服務名稱\開始= X   \ servername其中servicename是服務的名稱   出現在註冊表中,X是2,a 3或4(代表   分別自動啟動,手動啟動或禁用),和   servername是遠程服務器的名稱。

要查看服務名稱在註冊表中的顯示方式,請查看   以下註冊表​​項:   HKEY_LOCAL_MACHINE \系統\ CurrentControlSet \服務\


-2
2017-08-10 15:01



餿主意。您可以使用REG實用程序禁用服務,但不更新服務管理器。服務管理器仍然可以運行服務直到服務管理器刷新內部列表 - 此時測試並且服務仍然以禁用標誌= =已啟動(已禁用)啟動。 - SoLaR