Класс Win32_NetworkAdapter — Параметры сетевого адаптера

Класс Win32_NetworkAdapter — Параметры сетевого адаптера Объектная модель Windows Management Instrumentation

Класс Win32_NetworkAdapter позволяет получить информацию о параметрах сетевого адаптера, таких как, имя производителя, MAC адрес, серийный номер и так далее.

Win32_NetworkAdapter происходит от класса CIM_NetworkAdapter, тем самым, унаследовав от него часть свойств. Из 4 методов реализованы только два (enable и disable). Класс предоставляет провайдер подсистемы Win32, используемые файлы — Cimwin32.mof и Cimwin32.dll, пространство именrootCIMV2. Сам класс не позволяет вносить изменения в параметры сетевого адаптера, для этих целей используется класс Win32_NetworkAdapterConfiguration.

Если открыть диспетчер устройств на моем компьютере, то в нем отображаются только два сетевых адаптера – проводной и беспроводный. Однако, в системе есть и другие типы сетевых адаптеров – виртуальные. Например:

  • Microsoft видео или ТВ подключение
  • RAS асинхронный адаптер
  • Минипорт WAN (L2TP)
  • Прямой параллельный порт
  • ….

Так, я в своем время пользовался беспроводным модемом, информация о нем тоже осталась. Как вы уже поняли, с помощью класса Win32_NetworkAdapter можно получить информацию не только о физических, но и виртуальных адаптерах, что довольно полезно.

Прежде чем приступать к программированию, давайте откроем утилиту WMI CIM Studio, и посмотрим, какую информацию можно извлечь о классе Win32_NetworkAdapter.

Выберите в левой панели класс Win32_NetworkAdapter и в правой панели просмотрите содержимое вкладок Properties и Methods. Видим, что ключевым является свойство DeviceID, именно оно используется при получении конкретного экземпляра данного класса WMI. На вкладке Methods отображаются только два метода, и то, не имеющие реализации, все дело в том, что методы Enable и Disable добавлены в Windows Vista, а я работаю в Windows XP.

Теперь просмотрите вкладку Associations, на ней отображаются ассоциативные связи с классами Win32_NetworkProtokol, Win32_NetworkAdapterConfiguration и Win32_SystemDriver.

Теперь нажмите на кнопку Instances, и вы сможете получить список всех экземпляров данного класса, а в итоге – параметры сетевых адаптеров, установленных в системе, при чем, как физических, так и виртуальных.

Аналогичную информацию мы можем получить с помощью утилиты командной строки WMIC, ниже привожу ряд команд, которые нужно выполнить в консольном окне командной строки:

Получаем имя и идентификатор сетевого адаптера:

WMIC PATH Win32_NetworkAdapter GET DeviceID, Manufacturer

Выводим параметры сетевого адаптера под номером 1 во внешний файл в виде таблицы:

WMIC PATH Win32_NetworkAdapter WHERE"DeviceID='1'"GET/FORMAT:HFORM>d:WORKinfo.htm

Выводим параметры всех сетевых адаптеров во внешний файл в виде таблицы:

WMIC PATH Win32_NetworkAdapter GET/FORMAT:HFORM>d:WORKinfo.htm

Выводим информацию о свойствах и методах класса Win32_NetworkAdapter:

WMIC CLASS Win32_NetworkAdapter

Методы класса Win32_NetworkAdapter

Disable — отключение сетевого адаптера.

Enable — включение сетевого адаптера.

Свойства класса Win32_NetworkAdapter

AdapterType – Содержит информацию и типе сетевого подключения, например, “Глобальная сеть”.

AdapterTypeID – Содержит такую же информацию как и свойство AdapterType, но только в виде цифры. Значения:

  • 0 (0x0) — Ethernet 802.3
  • 1 (0x1) — Token Ring 802.5
  • 2 (0x2) — Fiber Distributed Data интерфейс (FDDI)
  • 3 (0x3) — Глобальная сеть (WAN)
  • 4 (0x4) — LocalTalk
  • 5 (0x5) — Ethernet с использованием формата заголовка DIX
  • 6 (0x6) — ARCNET
  • 7 (0x7) — ARCNET (878,2)
  • 8 (0x8) — ATM
  • 9 (0x9) — Беспроводная сеть
  • 10 (0xA) — Беспроводная инфракрасная сеть
  • 11 (0xB) — Bpc
  • 12 (0xC) — COWAN
  • 13 (0xD) — 1394

AutoSense – Содержит логическое значение, которое определяет, может ли сетевой адаптер автоматически определять скорость работы подключенного сетевого носителя. Данное свойство не реализовано, (CIM_NetworkAdapter).

Availability — Наличие и состояние устройства, (CIM_LogicalDevice). Возможные значения смотрите в документации Microsoft.

Caption – Описание устройства в короткой форме, (CIM_ManagedSystemElement).

ConfigManagerErrorCode – Код ошибки.

ConfigManagerUserConfig – Содержит логическое значение, определяющее, используется ли конфигурация пользователя, (CIM_LogicalDevice).

CreationClassName – Имя класса создателя, (CIM_LogicalDevice).

Description – Более обширное описание устройства, (CIM_ManagedSystemElement).

DeviceID – Идентификатор сетевого адаптера, (CIM_LogicalDevice).

ErrorCleared – Если значение TRUE, значит, информация об ошибке в свойстве LastErrorCode очищена, (CIM_LogicalDevice).

ErrorDescription – Описание ошибки, (CIM_LogicalDevice).

GUID — Глобально уникальный идентификатор соединения. Не поддерживается в Windows Server 2003 и Windows XP.

Index – Номер сетевого адаптера, установленного в системе, например, 1.

InstallDate – Дата установки, (CIM_ManagedSystemElement).

Installed – Если значение TRUE, значит сетевой адаптер установлен в системе.

InterfaceIndex — Значение индекса, уникально идентифицирующего локальный интерфейс, свойство не поддерживается в Windows XP, параметры сетевого адаптера.

LastErrorCode – Последний код ошибки, сообщенный устройством, (CIM_LogicalDevice).

MACAddress – Собственно, MAC-адрес сетевого адаптера.

Manufacturer – Имя сетевого адаптера, заданное производителем.

MaxNumberControlled – Максимальное количество непосредственно адресуемых портов, поддерживаемых этим сетевым адаптером. Значение 0 — если число неизвестно.

MaxSpeed — Максимальная скорость сетевого адаптера в битах в секунду, (CIM_NetworkAdapter).

Name – Метка сетевого адаптера, (CIM_ManagedSystemElement).

NetConnectionID – Чтение и запись. Указывает имя сетевого подключения в том виде, в котором оно появляется в папке »Сетевые подключения. В Windows Server 2003 and Windows XP данное свойство доступно только для чтения.

NetConnectionStatus – Состояние подключения сетевого адаптера к сети. Значения:

  • 0 (0x0) — Отключено
  • 1 (0x1) — Подключение
  • 2 (0x2) — Подключено
  • 3 (0x3) — Отключение
  • 4 (0x4) — Оборудование не присутствует
  • 5 (0x5) — Оборудование отключено
  • 6 (0x6) — Апаратный сбой
  • 7 (0x7) — Носитель отключен
  • 8 (0x8) — Аутентификация
  • 9 (0x9) — Аутентификация удалась
  • 10 (0xA) — Ошибка аутентификации
  • 11 (0xB) — Неправильный адрес
  • 12 (0xC) — Требуются полномочия

NetEnabled — Указывает, является ли адаптер включеным или нет. Если TRUE – сетевой адаптер включен. Вы можете включить или отключить сетевой адаптер с помощью методов Enable и Disable. В Windows Server 2003 и Windows XP свойство не доступно.

NetworkAddresses – Массив, содержащий адреса сетевого адаптера, (CIM_NetworkAdapter). Свойство не реализовано.

PermanentAddress — Сетевой адрес прошитый в сетевом адаптере, (CIM_NetworkAdapter).

PhysicalAdapter — Указывает является ли сетевой адаптер физическим или логическим. Если TRUE, то адаптер является физическим. Свойство не реализовано в Windows Server 2003 и Windows XP.

PNPDeviceID — Win32-идентификатор логического устройства Plug and Play, (CIM_LogicalDevice).

PowerManagementCapabilities – Параметры питания сетевого адаптера, (CIM_LogicalDevice).

PowerManagementSupported – Логическое значение, определяющее, можно ли управлять питанием, (CIM_LogicalDevice).

ProductName — Наименование сетевого адаптера, например, «Fast EtherLink XL».

ServiceName – Служебное имя.

Speed — Оценка текущей пропускной способности в битах в секунду. Свойство не реализовано в Windows Server 2003 и Windows XP:

Status – Состояние устройства, (CIM_ManagedSystemElement). Значения: OK, Error, Degraded, Unknown, Pred Fail, Starting, Stopping, Service.

StatusInfo – Информация о статусе устройства, (CIM_LogicalDevice). Значения: 1 (0x1) — Другое, 2 (0x2) — Неизвестный, 3 (0x3) — Включено, 4 (0x4) — Отключено, 5 (0x5) — Не применимо.

SystemCreationClassName — Имя класса создания системы, (CIM_LogicalDevice).

SystemName – Системное имя, (CIM_LogicalDevice).

TimeOfLastReset – Дата и время последней перезагрузки сетевого адаптера, (CIM_NetworkAdapter).

Ниже я приводу два сценария, в которых выводится информация о параметрах сетевых адаптеров, найденных в системе. Информация будет записываться во временный файл, который будет сразу открываться. Примеры работы с методами я приведу в других статьях.

Пример на языке VBScript:

 '**************************************************************' Параметры сетевого адаптера' Win32_NetworkAdapter.vbs'**************************************************************Optionexplicit dim objService, colNetworkAdapters, objItemdim NetworkInfo, objClassPropertydim FSO, TempPath, TxtFile Set objService = GetObject("WinMgmts:\.RootCIMV2") Set colNetworkAdapters = objService.ExecQuery("SELECT * FROM Win32_NetworkAdapter")  NetworkInfo = "Параметры сетевого адаптера" & vbCrLf & vbCrLf ' Начинаем перебор коллекцииForEach objItem in colNetworkAdapters    ' Начинаем перебор всех свойств для текущего экземпляра класса WMI    ForEach objClassProperty In objItem.Properties_        ' Если значение больше 0        If Len(objClassProperty.value)>0 Then             NetworkInfo = NetworkInfo & objClassProperty.Name &"= " & objClassProperty.value &vbCrLf        EndIf    Next    NetworkInfo = NetworkInfo & "----------------------------------------------" &vbCrLf &vbCrLfNext  ShowInNotepad(NetworkInfo) 'Процедура создания временного файла с даннымиSub ShowInNotepad(StrToFile)    Set FSO = CreateObject("Scripting.FileSystemObject")    TempPath = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%TEMP%") & "" & FSO.GetTempName    Set TxtFile = FSO.CreateTextFile(TempPath)    TxtFile.WriteLine(StrToFile)    TxtFile.Close    CreateObject("WScript.Shell").Run "wordpad.exe " & TempPathEndSub

Пример на языке JScript:

//**************************************************************// Параметры сетевого адаптера// Win32_NetworkAdapter.js//************************************************************** var objWMIService, colItems, objItemvar NetworkInfo, objItemC, objClassPropertyC, objClassProperty, strValvar TempPath, TxtFile // Получаем доступ к инструментарию Windows Management InstrumentationobjWMIService = GetObject("WinMgmts:\\.\Root\CIMV2");// выполняем WQL запрос и получаем коллекциюcolItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapter"); // Начинаем перебор коллекцииobjItem =new Enumerator(colItems); NetworkInfo ="Параметры сетевого адаптераnn"; for(;!objItem.atEnd(); objItem.moveNext()){    objItemC = objItem.item();    // Начинаем перебор всех свойств для текущего экземпляра класса WMI    objClassPropertyC =new Enumerator(objItemC.Properties_);     for(;!objClassPropertyC.atEnd(); objClassPropertyC.moveNext()){    objClassProperty = objClassPropertyC.item();            // Если значение больше 0            strVal = objClassProperty.value            if(strVal !=null){                NetworkInfo+= objClassProperty.Name+"= "+ objClassProperty.value+"n";            }    }    NetworkInfo +="----------------------------------------------nn";}ShowInNotepad(NetworkInfo) //Функцияя временного файла с даннымиfunction ShowInNotepad(StrToFile){    FSO = WScript.CreateObject("Scripting.FileSystemObject");    TempPath = WScript.CreateObject("WScript.Shell").ExpandEnvironmentStrings("%TEMP%")+"\"+ FSO.GetTempName();    TxtFile = FSO.CreateTextFile(TempPath);    TxtFile.WriteLine(StrToFile);    TxtFile.Close();    WScript.CreateObject("WScript.Shell").Run("wordpad.exe "+ TempPath);}
Оцените статью
Технологии программирования и ведение блога
Добавить комментарий