可以使用msconfig禁用服务,然后再启用。
我发现,他们也可以启用或禁用使用sc config命令,通过设置start选项为disabled或boot , system , auto等之一。
如何在程序中创build脚本或使用命令行来确定重新启用服务时要使用的启动types?
你需要确定什么? 是否已经设置为您要设置的types?
现在的状态真的不重要。 如果通过将服务的启动types设置为“自动”并将其设置为“自动”来“重新启用”服务,则不会更改服务,因此您不需要确定当前状态。
我不认为有任何本地的方式来做到这一点。 唯一的方法就是在禁用状态时导出状态,然后在启用时从configuration文件重新读取它。 用这个你可能有更好的运气在StackOverflow上。
你在做什么O / S? Powershell可能是一个更好的select。 你可以谷歌“Get-Service”让你开始。
我懂了!
经过一些testing和研究后,我发现了msconfig存储过去启用的起始值以及禁用date的registry中的位置。
HKLM\Software\Microsoft\Shared Tools\MSConfig\services
它由每个禁用服务的子密钥组成,每个子密钥都有以下值: YEAR , MONTH , DAY , HOUR , MINUTE , SECOND以及被禁用服务的简称,其数据包含以下内容之一:
0 =开机 1 =系统 2 =自动 3 =需求 5 =延迟自动 我所要做的就是在启用和禁用服务时读写这里。
供参考: 4 =禁用。 这就是为什么它不在上面的列表中。 只有当前被禁用的键被列在该位置。 我不认为XP有5 。