|
|
PE系统下,部分电脑运行DiskGenius或CPU-Z会卡住,是由于wbem文件夹的存在引起的,wbem里没有Repository子文件夹(包括文件)!如果没有wbem文件夹,DiskGenius或CPU-Z会正常运行!
温馨提示:如果在您的电脑发现有这个问题,请补齐%SystemRoot%\System32\wbem\Repository文件夹的文件,重新打包PE!
`wbem`文件夹的存在导致DiskGenius或CPU-Z卡住的现象,与Windows Management Instrumentation(WMI)服务的依赖关系及PE环境的特殊性有关:
♠1. **`wbem`文件夹的作用**
`wbem`是WMI的核心组件目录,通常位于`%SystemRoot%\System32\wbem`。它包含WMI的提供程序、MOF(Managed Object Format)文件和存储库(`Repository`子文件夹)。
**关键点**:WMI服务运行时需要`Repository`文件夹(存储WMI数据库)。如果`wbem`文件夹存在但缺少`Repository`,WMI服务可能无法正常初始化,导致依赖WMI的进程挂起。
♠2. **为什么DiskGenius/CPU-Z会卡住?**
**DiskGenius**和**CPU-Z**等工具可能会间接调用WMI接口来获取硬件信息(如磁盘型号、CPU详情等)。例如:
CPU-Z可能通过WMI查询`Win32_Processor`类。
DiskGenius可能使用WMI获取磁盘的SMART数据或控制器信息。
**卡住的原因**:
当`wbem`文件夹存在时,PE系统可能尝试加载WMI服务,但因缺少`Repository`而失败。
工具在调用WMI接口时会等待超时(默认可能长达数秒或更久),表现为“卡住”。
若`wbem`文件夹完全不存在,工具可能直接跳过WMI查询,转而使用其他API(如直接硬件访问或内核调用),从而正常运行。
♠3. **PE系统的特殊性**
PE系统通常精简了WMI组件。如果`wbem`文件夹被部分保留(例如从完整系统复制而来),但缺少关键文件(如`Repository`),会导致以下问题:
**服务初始化失败**:WMI服务(`winmgmt`)无法创建或读取`Repository`数据库,陷入等待状态。
**工具兼容性**:部分工具未处理WMI初始化超时的异常,导致界面冻结。
♠4. **解决方案**
**删除`wbem`文件夹**:彻底移除后,工具不再尝试调用WMI,转而使用替代方法获取信息。
**补全WMI组件**:在PE中完整集成`wbem`文件夹(包括`Repository`),确保WMI服务可用。
**修改工具配置**(如果支持):禁用工具的WMI查询功能(例如CPU-Z的某些版本可通过参数跳过WMI)。
♠5. **验证方法**
使用**Process Monitor**工具监视DiskGenius/CPU-Z的调用堆栈,确认是否卡在WMI相关API(如`IWbemServices`调用)。
在PE中手动启动WMI服务(`winmgmt`),观察是否报错(如提示`Repository`损坏或缺失)。
总结:
根本原因是**不完整的WMI组件导致工具依赖的接口超时**。删除`wbem`文件夹避免了WMI初始化问题,迫使工具使用更直接的硬件访问方式。建议在定制PE时,要么完全移除WMI,要么确保其完整性。 |
|