如何删除 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
}
}
我被要求创建一个应用程序来管理 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
}
}