WMI 可以查询 class 属性 并使用另一个 class 属性 进行过滤吗?

Can WMI query a class property and filter using another class property?

我是 WMI 菜鸟。我正在使用 BGInfo 并且有一个带有 2 个 NIC 的设备。我正在尝试查询其中一个 NIC 的 IP 地址。我想根据网卡名称提交查询

但是,我 运行 遇到一个问题,即 IP 地址存储在 Win32_NetworkAdapterConfiguration 中,网卡名称存储在 Win32_NetworkAdapter 中。

我想构建如下所示的 WMI 查询:

SELECT IPAddress FROM Win32_NetworkAdapterConfiguration WHERE Win32_NetworkAdapter.Name="My NIC Name".

这可能吗?

为了基本的理解,运行(来自cmdwindow)以下命令行

wmic path Win32_NetworkAdapter get DeviceID, Index, InterfaceIndex, Name, NetConnectionId
wmic path Win32_NetworkAdapterConfiguration get Index, InterfaceIndex, IPAddress
wmic path Win32_NetworkAdapterSetting

并阅读以下文档:

然后您可以了解以下代码片段的工作原理(如果您使用 _adapterName 的真实值而不是 My NIC Name 占位符):

set "_adapterName=My NIC Name"
wmic path Win32_NetworkAdapter where "Name='%_adapterName%'" ASSOC:value /RESULTCLASS:Win32_NetworkAdapterConfiguration 

最后,您可以将以上输出限制在 IPAddress=… 行,如下所示:

wmic path Win32_NetworkAdapter where "Name='%_adapterName%'" ASSOC:value /RESULTCLASS:Win32_NetworkAdapterConfiguration | findstr "^IPAddress"