0x80041010错误表明WMI类无法识别,需按五步修复:一查存储库一致性(winmgmt /verifyrepository),二重建Repository并重命名备份,三重编MOF/MFL文件,四修复framedyn.dll缺失及权限,五运行sfc/dism修复系统文件。

电脑显示 0x80041010 错误代码,说明 Windows 管理规范(WMI)中某个类无法被识别或加载,常见于打开 SQL Server 配置管理器、运行系统诊断工具、激活 Windows 或使用性能监视器时突然失败——这不是权限问题,也不是网络故障,而是 WMI 底层元数据已损坏或缺失。
先验证 WMI 存储库是否损坏
这一步能快速判断问题严重程度,避免盲目重建:
以管理员身份运行命令提示符 → 输入 【winmgmt /verifyrepository】 并回车 → 若返回“WMI repository is not consistent”,说明存储库已损坏,必须修复;若显示“repository is consistent”,则问题出在 MOF 注册或 DLL 缺失,跳转至对应章节。
注意:该命令不修改任何文件,纯读取校验,可安全执行多次。
重建 WMI 存储库(最常用有效方案)
适用于绝大多数 0x80041010 场景,尤其当验证命令报“not consistent”时:
第一步:以管理员身份运行命令提示符 → 执行 【net stop winmgmt /y】,强制停止 WMI 服务及所有依赖项(如 IPHelper、CryptSvc),避免文件占用。
第二步:进入系统 WBEM 目录 → 执行 【cd /d %windir%\system32\wbem】 → 再执行 【ren Repository Repository.old】,将原存储库重命名备份。这一步不可跳过,否则系统不会触发重建。
第三步:启动服务并等待自动重建 → 执行 【net start winmgmt】 → 等待 60–120 秒,观察 C:\Windows\System32\wbem\Repository 文件夹是否重新生成(大小约 20–50MB)。期间不要关闭窗口或重启电脑。
第四步:验证重建结果 → 再次运行 【winmgmt /verifyrepository】,确认输出为“consistent”。若仍失败,立即执行 【winmgmt /resetrepository】 强制清空并重建——该命令会删除所有自定义命名空间,但不影响系统功能和用户数据。
重编译 SQL Server WMI 提供程序 MOF 文件
专用于 SQL Server 配置管理器打不开、SSMS 连接失败等数据库相关场景:
方法一(64位系统 + SQL Server 2012–2022):
以管理员身份运行 CMD → 执行 【mofcomp.exe "C:\Program Files (x86)\Microsoft SQL Server\110\Shared\sqlmgmproviderxpsp2up.mof"】,其中“110”需按实际版本替换(2012=110,2016=130,2019=150,2022=160)。
方法二(32位系统或默认安装路径):
若上一步提示“系统找不到指定文件”,改用路径 【mofcomp.exe "C:\Program Files\Microsoft SQL Server\150\Shared\sqlmgmproviderxpsp2up.mof"】,注意去掉“(x86)”且版本号匹配。
提示:若两个路径都不存在该 MOF 文件,需从同版本正常机器复制过来,或从 SQL Server 安装介质的 \Tools\Binn\Templates\1033\ 目录提取。
检查并修复 framedyn.dll 缺失
这个 DLL 是 WMI 类加载器核心组件,精简版系统或异常关机后极易丢失:
打开文件资源管理器 → 地址栏输入 【%windir%\system32】 回车 → 查找 framedyn.dll 文件是否存在。
若不存在 → 进入 【%windir%\system32\wbem】 → 找到同名文件 → 复制粘贴到 system32 根目录下 → 右键该文件 → 属性 → 安全 → 编辑 → 确保 SYSTEM 和 Administrators 组有“完全控制”权限。
最后在管理员 CMD 中执行 【regsvr32 /s framedyn.dll】 完成注册。
批量重注册 WBEM 目录下的 MOF 与 DLL
仅重建 Repository 不够,WMI 类定义来自 MOF 文件,提供程序逻辑由 DLL 实现:
以管理员身份运行 CMD → 执行 【cd /d C:\Windows\System32\wbem】 → 执行 【for %i in (*.mof) do mofcomp %i】 → 等待全部完成(约 2–5 分钟)→ 再执行 【for %i in (*.dll) do regsvr32 /s %i】,跳过报错项即可。
完成后重启 winmgmt 服务:【net stop winmgmt && net start winmgmt】。


















