如何使用 System.Management 调用 WMI 类方法

若要调用客户端 Windows Management Instrumentation (WMI) 类方法,请在 Configuration Manager 中调用 InvokeMethod WMI 类的 ManagementClass

调用 WMI 类方法

  1. 设置与Configuration Manager客户端 WMI 命名空间的连接。 有关详细信息,请参阅如何使用 System.Management 连接到 Configuration Manager 客户端 WMI 命名空间

  2. ManagementClass使用ManagementScope在步骤 1 中获取的路径以及要调用方法的类的名称来创建 。

  3. 创建 并在 ManagementBaseObject 参数中为 方法指定任何 。

  4. 使用 ManagementClass 对象 InvokeMethod 方法调用 方法。

  5. 使用返回的 ManagementBaseObject查看返回的参数。

示例

以下 C# 代码示例调用 ISmsClient::GetAssignedSite 方法以获取客户端的当前分配站点。 然后,它使用 ISmsClient::SetAssignedSite 方法将分配的站点设置回相同的值。

有关调用示例代码的信息,请参阅 如何使用 System.Management 调用 WMI 类方法


public void CallMethod(ManagementScope scope)  
{  
    try// Get the client's SMS_Client class.  
    {  
        ManagementClass cls = new ManagementClass(scope.Path.Path, "sms_client", null);  

        // Get current site code.  
        ManagementBaseObject outSiteParams = cls.InvokeMethod("GetAssignedSite", null, null);  

        // Display current site code.  
        Console.WriteLine(outSiteParams["sSiteCode"].ToString());  

        // Set up current site code as input parameter for SetAssignedSite.  
        ManagementBaseObject inParams = cls.GetMethodParameters("SetAssignedSite");  
        inParams["sSiteCode"] = outSiteParams["sSiteCode"].ToString();  

        // Assign the Site code.  
        ManagementBaseObject outMPParams = cls.InvokeMethod("SetAssignedSite", inParams, null);  
    }  
    catch (ManagementException e)  
    {  
        throw new Exception("Failed to execute method", e);  
    }  
}  

此示例方法具有以下参数:

参数 类型 说明
scope - ManagementScope 与客户端 WMI 提供程序的有效连接。 路径为 root\ccm。

编译代码

命名空间

系统警报

System.Management

Assembly

System.Management

可靠编程

可以引发的异常是 System.Management.ManagementException

另请参阅

关于Configuration Manager WMI 编程
如何使用 System.Management 调用 WMI 类方法
如何使用 System.Management 连接到 Configuration Manager 客户端 WMI 命名空间
如何使用 System.Management 执行异步查询
如何使用 System.Management 执行同步查询
如何使用 System.Management 读取 WMI 对象