从命令行禁用Windows服务


55

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

  1. 打开“服务”管理控制台
  2. 滚动到服务名称
  3. 右键单击“属性”(或双击)
  4. 将启动类型:更改为禁用
  5. 应用
  6. 点击“停止”

我不想删除Windows服务,而是禁用它。


1
services.msc,输入服务名称,按右键单击菜单键,按键选择停止,然后按Enter。
塔玛拉·威斯曼

5
不是重复的,因为OP打算停止并禁用自动启动
Alfabravo 2012年

1
@TomWijsman通常会在指定“命令行”时表示没有鼠标,因此从键盘导航GUI不会回答我的问题
Kevin Dryger,2012年

1
@KevinDriedger:我建议一种方法来缩短步骤,所需的键数比答案少。
塔玛拉·威斯曼

Answers:


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

空间后“ start=”是很重要的

您可以通过在“服务”屏幕上双击服务来查看服务名称:

服务名称


12

除了凯文(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

SC STOP "<nameservice>"

SC CONFIG "<nameservice>" START=BOOTSYSTEMAUTODEMANDDISABLED或或或DELAYED-AUTO

链接:Sc配置


4
这与五年前获得最高投票的答案有何不同?
Greenonline

4
@Greenonline:实际上有所不同,Marc提供了完整的参数列表以及帮助页面的链接。不要拒绝投票有用的东西。
SoLaR

-2

KB248660引用:

必须在计算机上安装Microsoft Windows NT资源工具包中的Reg.exe实用工具。

若要使用命令行更改本地计算机上服务的启动值,请在命令提示符处键入以下内容,然后按Enter:REG UPDATE HKLM \ SYSTEM \ CurrentControlSet \ Services \ servicename \ Start = X,其中servicename是名称出现在注册表中且X的值为2、3或4(分别表示自动启动,手动启动或禁用)。

若要通过在本地使用命令行在远程计算机上更改服务的启动值,请在命令提示符处键入以下内容,然后按Enter:REG UPDATE HKLM \ SYSTEM \ CurrentControlSet \ Services \ servicename \ Start = X \ servername其中servicename是服务名称,它出现在注册表中,X是2、3或4(分别表示自动启动,手动启动或禁用),而servername是远程服务器的名称。

若要查看服务名称在注册表中的显示方式,请查看以下注册表项:HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \


馊主意。您可以使用REG实用程序禁用服务,但服务管理器未更新。服务仍可以由服务管理器运行,直到服务管理器刷新内部列表-此时进行了测试,并且服务仍以禁用标志==已启动(已禁用)开始。
SoLaR
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.