![MSConfig 如何确定哪些服务来自 Microsoft?](https://linux22.com/image/1580980/MSConfig%20%E5%A6%82%E4%BD%95%E7%A1%AE%E5%AE%9A%E5%93%AA%E4%BA%9B%E6%9C%8D%E5%8A%A1%E6%9D%A5%E8%87%AA%20Microsoft%EF%BC%9F.png)
我正在尝试自动执行计算机的干净启动过程。为此,我需要知道哪些服务是 Windows 的一部分,哪些服务是第三方的。
在 Microsoft 的文档中,MSConfig 用于干净启动计算机。它的效果很好。在“服务”选项卡上,只需选中底部的“隐藏所有 Microsoft 服务”框,然后禁用其余服务即可。
因此,我试图弄清楚如何以编程方式确定某项服务是否来自 Microsoft。但“HKLM\SYSTEM\CurrentControlSet\Services\”中的任何注册表项似乎都无法指明哪种方式。
我似乎认为这是可能的,因为 MSConfig 会很好地列出其他非 Microsoft 服务的制造商。我只是不知道在哪里可以找到这些信息。
有任何想法吗?
答案1
由于我没有源代码访问权限,因此无法 100% 确定,但我相信这是真的。每个服务都由一个可执行文件托管。许多服务由 windows\system32 文件夹中的 svchost.exe 托管,而其他服务则有自己的文件。这些文件几乎总是有一个称为资源的部分。它包含文件简短描述、版本信息和制造商等信息。其中一些显示在文件属性的详细信息选项卡中。Msconfig 无论如何都会提取此信息以用于显示目的,因此它似乎也用于识别 Microsoft 服务。