从命令行进行 Windows 服务管理:正确的启动类型?

从命令行进行 Windows 服务管理:正确的启动类型?

可以使用 禁用服务msconfig,然后在稍后启用。

我发现也可以使用sc config命令来启用或禁用它们,通过将start选项设置为或、、等disabled之一。bootsystemauto

如何创建脚本或使用程序中的命令行来确定重新启用服务时使用哪种启动类型?

答案1

您需要确定什么?它是否已设置为您想要设置的类型?

当前状态是什么其实并不重要。如果您通过将服务的启动类型设置为“自动”来“重新启用”服务,并且该服务已设置为“自动”,则不会发生任何变化,因此您实际上不需要确定其当前状态是什么。

答案2

我认为没有任何原生方法可以做到这一点。唯一的方法是禁用时导出状态,然后在启用时从配置文件中重新读取状态。使用这个方法在 StackOverflow 上可能会有更好的运气。

你使用的是哪种操作系统?Powershell 可能是一个更好的选择。你可以谷歌搜索“Get-Service”来开始。

答案3

我懂了!

经过一些测试和研究,我发现了注册表中msconfig存储过去启用的起始值以及禁用日期的位置。

HKLM\Software\Microsoft\Shared Tools\MSConfig\services

它由每个禁用服务的子键组成,每个子键具有以下值:YEAR,,,,,,MONTH以及数据包含以下内容之一的禁用服务的简称:DAYHOURMINUTESECOND

  • 0= 引导
  • 1= 系统
  • 2= 自动
  • 3= 需求
  • 5= 延迟自动

我所要做的就是在启用和禁用服务时在这里读写。

仅供参考:4= 已禁用。这就是它不在上面列表中的原因。该位置仅列出当前已禁用的键。我不认为 XP 有5

相关内容