You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何备份WMI/CIM命令及相关类?误删类的恢复方法

误删WMI类后的恢复方法及事前备份方案

一、误删WMI类后的恢复方式

如果不小心用Remove-WmiObject或Remove-CimInstance删除了WMI类,可以通过以下几种方法恢复:

1. 系统还原恢复

找到删除操作之前创建的系统还原点,执行系统还原,这是最省心的方式,能直接恢复整个WMI存储库到删除前的状态。

2. 重新编译MOF文件(针对系统自带类)

系统自带的WMI类都有对应的MOF文件存储在C:\Windows\System32\wbem\MOF\目录下,找到对应类的MOF文件,用mofcomp命令重新编译:

# 以root/subscription下的类为例,编译对应的eventmgt.mof
mofcomp C:\Windows\System32\wbem\MOF\eventmgt.mof

编译完成后重启WMI服务生效:

Restart-Service winmgmt

3. 从同版本系统复制存储库

找一台和目标机器Windows版本、补丁级别完全一致的正常机器,停止WMI服务后复制其C:\Windows\System32\wbem\Repository目录下的所有文件,替换到目标机器的对应目录,最后重启WMI服务。

二、事前备份WMI的方案

当然可以在操作前提前备份WMI相关内容,避免误删后麻烦,主要有两种备份方式:

1. 备份WMI存储库目录

  • 先停止WMI服务:
    Stop-Service winmgmt -Force
    
  • 复制C:\Windows\System32\wbem\Repository整个目录到安全的备份位置(比如D:\WMI_Backup)
  • 重新启动WMI服务:
    Start-Service winmgmt
    

后续如果出现问题,停止服务后替换回备份的目录即可恢复。

2. 导出WMI类定义到MOF文件

用mofcomp命令将指定命名空间的类定义导出成MOF文件,后续可以直接编译恢复:

# 导出root/subscription命名空间的所有类到备份文件
mofcomp -n:root/subscription -export root_subscription_backup.mof

如果类被误删,执行以下命令恢复:

mofcomp root_subscription_backup.mof

操作示例

步骤1:删除WMI类

Get-WmiObject -Namespace "root/subscription" -Class "NTEventLogEventConsumer"
Remove-WmiObject -Namespace "root/subscription" -Class "NTEventLogEventConsumer"

步骤2:验证类已删除(执行命令报错)

Get-WmiObject -Namespace "root/subscription" -Class "NTEventLogEventConsumer"

报错信息:

Get-WmiObject : Invalid class
At line:1 char:14

  • Get-WmiObject <<<< -Namespace "root/subscription" -Class "NTEventLogEventConsumer"
    • CategoryInfo : InvalidOperation: (:) [Get-WmiObject], ManagementException
    • FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

内容的提问来源于stack exchange,提问作者Ichigo Kurosaki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 20:58:42