如何删除 WMI class

How to delete WMI class

我被要求创建一个应用程序来管理 WMI 中的实例。

在此应用程序的先前版本中,WMI class 如下所示

{String Key,String Data}

新版本的 WMI class 看起来像这样

{String Key,String Data1,String Data2}.

如果 WMI class 确实存在但不是新格式,我现在面临一个问题。出于升级目的,可能会发生这种情况。

我想删除旧的 WMI class 并使用新格式创建新的。

我该怎么做?

你可以使用 System.Management 您的代码应如下所示:

    void DeleteClass()
    {
        string ns, cl;
        ns = "nameSpace path";
        cl = "ClassName";
        string serverString = @"\" + System.Environment.GetEnvironmentVariable("COMPUTERNAME") +ns;
        ManagementScope mScope = new ManagementScope(serverString);
        using (ManagementClass cls = new ManagementClass(mScope, new ManagementPath(cl), new ObjectGetOptions()))
        {
            using (ManagementObjectCollection objCol = cls.GetInstances())
            {
                foreach (ManagementObject obj in objCol)
                {
                    obj.Delete();//cleare the instances
                }
            }
            cls.Delete();//delete the class
        }
    }