我目前正在尝试调试 Windows 部署服务的一个问题,当将其设置为向 DHCP 服务器询问多播地址范围时,WDS 服务将无法启动,因为它会从 DHCP 收到“拒绝访问”响应。
我找不到任何文档来解释发生了什么。但我熟悉使用 Windows SysInternals进程监控检查各个正在运行的进程中发生的情况以找出问题所在。
但微软运行服务的方式让这个问题很难诊断。微软不是直接在单独的进程中运行每个系统服务,而是将它们全部作为服务主机的代理来运行。
而且,在某些情况下,单个服务主机在其下运行多个系统服务,而不是每个服务都有自己的服务主机进程 ID。
因此,使用任务管理器和进程监视器,很难分辨哪个服务主机正在运行 WDS,并且它可能与同一进程 ID 下的其他不相关的服务分组在一起。
(单一服务主机进程 ID 下何时发生进程共享的逻辑并不明显。)
我不明白为什么微软决定间接运行这样的服务,尽管这是一个非常古老的操作系统设计决策,至少可以追溯到 Windows NT。
也许微软的工程师甚至都不知道了,这只是他们正在继续进行的熟悉但过时/不必要的系统设计,但他们实际上不需要这样做。
服务主机似乎只会使操作系统的功能更加模糊,并且在出现问题时更难以调试。
这种混淆是出于某种原因而故意为之,也许是为了隐藏其反盗版许可机制的运作?