【问题标题】:How to delete WMI class如何删除 WMI 类
【发布时间】:2018-02-20 16:16:59
【问题描述】:

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

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

{String Key,String Data}

对于新版本,WMI 类如下所示

{String Key,String Data1,String Data2}.

现在,如果 WMI 类确实存在但不是新格式,我将面临一个问题。这可能是出于升级目的。

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

我该怎么做?

【问题讨论】:

  • 你真的应该改写你的标题,也许把你的问题分成几段。
  • 这与 WMI(Windows 管理工具)有什么关系?
  • 我的问题是 C# 中这个 VB 脚本的等效过程是什么 Dim ns, cls ns = "NameSpace path" cls = "ClassName" moniker = "winmgmts:" _ & "{" _ & "impersonationLevel=impersonate," _ & "authenticationLevel=PktPrivacy"_ & "}" _ & "!\\" _ & ".\" _ & ns Set WmiService = GetObject(moniker) WmiService.delete cls

标签: c# wmi


【解决方案1】:

您可以使用 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
        }
    }

【讨论】:

  • 非常感谢
  • @A.a 欢迎您,注意您需要处理错误和异常
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-30
  • 2011-01-28
  • 2016-11-19
  • 2010-09-09
相关资源
最近更新 更多