运行Services.msc
GUI 时可以手动将 Windows 服务启动类型设置为自动、自动(延迟启动)、手动或禁用,服务的配置存储在注册表树中,可以通过命令 shell 和注册表编辑器进行配置。
使用sc config
或时,服务启动regedit
类型选项为0
、、、、、、,分别对应1
于、、、、、、。引导和系统现在是可配置选项。将任意服务的起始值数据更改为确实会使 Services.msc 在“启动类型”列中反映“启动”(尽管尝试通过 GUI 编辑该服务启动类型仅提供常规的四个选项)。2
3
4
Boot
System
Automatic
Manual
Disabled
0
启动和系统似乎是有用的附加选项,但显然很少或没有默认的 Windows 服务利用它 - 甚至 Windows 组件(例如 Power、Windows Defender 高级威胁防护或加密服务)看起来非常完整。
所以我的问题是:
- 将服务设置为启动是否安全
Boot
,或者System
是否希望它们比Automatic
服务更早运行? - 这样做会导致系统不稳定吗?(如果答案是“视情况而定”,请指出一些提供理由的文档,理想情况下,这些文档可用于确定哪些服务(如果有)是安全且稳定的。)
- 是否有任何不建议使用这些启动选项的具体原因?
- 是否有任何有关这些启动选项的目的/用途的实际 Microsoft 文档?(到目前为止我还没有找到。)
服务控制管理器 (SCM) - services.exe,负责管理 Windows 服务。在此上下文中,服务包括用户模式服务 (.exe) 和内核模式驱动程序 (.sys)。
用户模式服务也可以实现为 DLL,但需要由“.exe”进程托管,对于 svchost.exe 托管的许多服务来说就是这种情况。
服务数据库存储在以下注册表项下:
为了向 SCM 注册新服务或控制服务,可以使用许多 API。请参阅https://learn.microsoft.com/en-us/windows/win32/api/winsvc/
如果您查看使用 API ChangeServiceConfigW配置服务的文档,其中包括设置我们看到的启动类型:
因此这些启动类型(0 和 1)适用于驱动程序,而不是用户模式服务。MMC 管理单元 Services.msc 仅显示用户模式服务,而不显示驱动程序。
我希望这有帮助。