WMI是否可以查询类属性并使用另一个类属性进行过滤?

问题描述

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

但是,我遇到了一个问题,其中IP地址存储在Win32_NetworkAdapterConfiguration中,而NIC名称存储在Win32_NetworkAdapterConfiguration中。

我要构建如下的WMI查询

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

这可能吗?

解决方法

基本理解,请从打开的cmd窗口中运行以下命令行

wmic path Win32_NetworkAdapter get DeviceID,Index,InterfaceIndex,Name,NetConnectionId
wmic path Win32_NetworkAdapterConfiguration get Index,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"