我一直遇到问题,导致我的 Windows XP 系统从冷启动到启动需要 6-8 分钟。启动过程中发生了一些事情,导致系统运行缓慢。
我有丰富的 Linux 经验,尤其是配置运行级别,以便某些程序先于其他程序启动。我也知道如何在 Windows XP 上执行此操作,但这真的很复杂,而且对于 50 个服务,我必须保留一个巨大的电子表格才能将它们全部组织起来。
是否有类似 Windows XP 工具的东西可以“模拟”Linux 运行级别编辑器,我可以使用它来控制系统上服务的启动顺序?
答案1
Windows 服务不会按照其依赖项之外的特定顺序启动。每个服务都维护一个列表,其中列出必须首先启动的其他服务(此列表可在服务的属性窗口中查看)。例如,大量服务依赖于首先启动远程过程调用。
如果需要,您可以通过以下命令更改服务的依赖关系sc
:
sc config <service name> depend= <slash-separated list>
或者手动编辑注册表项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\<service name>
Name: DependOnService
Value: A list describing each service this service depends on.
如果您试图更改这些依赖项以加快启动过程,则很可能会导致更多问题,例如意外地使两个服务相互依赖。此外,除非所有服务在启动时都尝试进行大量磁盘访问(这不太可能),否则添加依赖项不太可能有助于加快启动速度。内核的进程调度程序可能会比您更好地为服务分配 CPU 时间。
如果你正在尝试排除故障,看看这些服务是否导致了速度变慢,那么我建议使用以下工具:自动运行或 msconfig 选择性地禁用服务,直到找到导致问题的服务。这样,您不太可能引发大问题,而且在最坏的情况下,如果一切都出问题,您仍然能够启动到安全模式并重新启用所有服务。
答案2
虽然与“运行级别”并不完全相同,Microsoft/SysInternals 自动运行将显示启动时启动的所有内容(以及更多),并允许您对其进行配置。它是启动时配置和调试的绝佳工具。