命令行中的Windows服务pipe理:正确的启动types?

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

我发现,他们也可以启用或禁用使用sc config命令,通过设置start选项为disabledbootsystemauto等之一。

如何在程序中创build脚本或使用命令行来确定重新启用服务时要使用的启动types?

你需要确定什么? 是否已经设置为您要设置的types?

现在的状态真的不重要。 如果通过将服务的启动types设置为“自动”并将其设置为“自动”来“重新启用”服务,则不会更改服务,因此您不需要确定当前状态。

我不认为有任何本地的方式来做到这一点。 唯一的方法就是在禁用状态时导出状态,然后在启用时从configuration文件重新读取它。 用这个你可能有更好的运气在StackOverflow上。

你在做什么O / S? Powershell可能是一个更好的select。 你可以谷歌“Get-Service”让你开始。

我懂了!

经过一些testing和研究后,我发现了msconfig存储过去启用的起始值以及禁用date的registry中的位置。

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

它由每个禁用服务的子密钥组成,每个子密钥都有以下值: YEARMONTHDAYHOURMINUTESECOND以及被禁用服务的简称,其数据包含以下内容之一:

  • 0 =开机
  • 1 =系统
  • 2 =自动
  • 3 =需求
  • 5 =延迟自动

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

供参考: 4 =禁用。 这就是为什么它不在上面的列表中。 只有当前被禁用的键被列在该位置。 我不认为XP有5