示例:从远程计算机获取 WMI 数据 您所在的位置:网站首页 wmic查看进程 示例:从远程计算机获取 WMI 数据

示例:从远程计算机获取 WMI 数据

2024-07-16 03:34| 来源: 网络整理| 查看: 265

通过调用 CoInitializeEx 来初始化 COM 参数。

有关详细信息,请参阅初始化 WMI 应用程序的 COM。

通过调用 CoInitializeSecurity 来初始化 COM 进程安全性。

有关详细信息,请参阅 使用 C++ 设置默认进程安全级别。

通过调用 CoCreateInstance 获取 WMI 的初始定位符。

有关详细信息,请参阅创建与 WMI 命名空间的连接。

通过调用 IWbemLocator::ConnectServer,获取指向远程计算机上 root\cimv2 命名空间的 IWbemServices 的指针。 连接到远程计算机时,需要知道要连接到的远程计算机的计算机名、域、用户名和密码。 这些属性全部传递到 IWbemLocator::ConnectServer 方法中。 此外,请确保尝试连接到远程计算机上的用户名在远程计算机上具有正确的访问权限。 有关详细信息,请参阅通过 Windows 防火墙进行连接。 若要连接到本地计算机,请参阅示例:从本地计算机获取 WMI 数据和创建与 WMI 命名空间的连接。

处理用户名和密码时,建议提示用户输入信息,使用信息后便删除信息,以降低信息被未经授权的用户截获的可能性。 以下示例代码中的步骤 4 使用 CredUIPromptForCredentials 获取用户名和密码,然后使用 SecureZeroMemory,这样便可在 IWbemLocator::ConnectServer 中使用信息后删除信息。 有关详细信息,请参阅在 MSDN 上的处理密码和要求用户提供凭据。

创建 COAUTHIDENTITY 结构以提供用于设置代理安全性的凭据。

通过调用 CoSetProxyBlanket 来设置 IWbemServices 代理安全性,以便 WMI 服务可以模拟客户端。

有关详细信息,请参阅在 WMI 连接上设置安全级别。

使用 IWbemServices 指针向 WMI 发出请求。 执行查询以通过调用 IWbemServices::ExecQuery 来获取操作系统的名称和可用物理内存量。

以下 WQL 查询是方法参数之一。

SELECT * FROM Win32_OperatingSystem

此查询的结果存储在 IEnumWbemClassObject 指针中。 这样就可以使用 IEnumWbemClassObject 接口半同步检索查询中的数据对象。 有关详细信息,请参阅枚举 WMI。 若要异步获取数据,请参阅示例:从本地计算机异步获取 WMI 数据。

若要详细了解如何向 WMI 发出请求,请参阅操作类和实例信息、查询 WMI 和调用方法。

设置 IEnumWbemClassObject 枚举器代理安全性。 使用完凭据后,请确保从内存中擦除凭据。

有关详细信息,请参阅在 IWbemServices 和其他代理上设置安全性。

获取并显示 WQL 查询中的数据。 IEnumWbemClassObject 指针链接到查询返回的数据对象,数据对象可以使用 IEnumWbemClassObject::Next 方法进行检索。 此方法将数据对象链接到已传递到此方法中的 IWbemClassObject 指针。 使用 IWbemClassObject::Get 方法从数据对象中获取所需信息。

以下代码示例用于从数据对象中获取 Name 属性,该属性提供操作系统的名称。

VARIANT vtProp; // Get the value of the Name property hr = pclsObj->Get(L"Name", 0, &vtProp, 0, 0); wcout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有