#wmi #wmic #wmi-query #get-wmiobject
#wmi #wmic #wmi-запрос #get-wmiobject
Вопрос:
Я новичок в WMI. Я использую BGInfo и имею устройство с 2 сетевыми адаптерами. Я пытаюсь запросить IP-адрес одного из сетевых адаптеров. Я хочу отправить запрос на основе имени сетевого адаптера.
Однако я сталкиваюсь с проблемой, когда IP-адрес сохраняется в Win32_NetworkAdapterConfiguration, а имя сетевого адаптера сохраняется в Win32_NetworkAdapter .
Я хочу создать запрос WMI следующим образом:
SELECT IPAddress FROM Win32_NetworkAdapterConfiguration WHERE Win32_NetworkAdapter.Name="My NIC Name".
Возможно ли это?
Ответ №1:
Для базового понимания запустите (из открытого cmd
окна) следующие командные строки
wmic path Win32_NetworkAdapter get DeviceID, Index, InterfaceIndex, Name, NetConnectionId
wmic path Win32_NetworkAdapterConfiguration get Index, InterfaceIndex, IPAddress
wmic path Win32_NetworkAdapterSetting
и прочитайте следующую документацию:
- Класс Win32_NetworkAdapter — представляет сетевой адаптер компьютера под управлением операционной системы Windows (устаревший?),
- Класс Win32_NetworkAdapterConfiguration — представляет атрибуты и поведение сетевого адаптера,
- Класс ассоциации
WMI
Win32_NetworkAdapterSetting class связывает сетевой адаптер и его параметры конфигурации.
Тогда вы можете понять, как работает следующий фрагмент кода (если вы используете реальное значение для _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"