问题描述
我是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
并阅读以下文档:
- Win32_NetworkAdapter class-代表运行Windows操作系统的计算机的网络适配器(已弃用?),
- Win32_NetworkAdapterConfiguration class-代表网络适配器的属性和行为,
- Win32_NetworkAdapterSetting class-关联
WMI
类与网络适配器及其配置设置相关。
然后,您将了解以下代码段的工作方式(如果您使用_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"