Класс 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.

Просмотр в утилите WMI CIM Studio прараметров класса Win32_NetworkAdapter

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

Просмотр ассоциаций с классом Win32_NetworkAdapter

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

Экземпляры Win32_NetworkAdapter содержат параметры сетевого адаптера

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

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

WMIC PATH Win32_NetworkAdapter GET DeviceID, Manufacturer

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

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

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

WMIC PATH Win32_NetworkAdapter GET/FORMAT:HFORM>d:\WORK\info.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
'**************************************************************
Option explicit
 
dim objService, colNetworkAdapters, objItem
dim NetworkInfo, objClassProperty
dim FSO, TempPath, TxtFile
 
Set objService = GetObject("WinMgmts:\\.\Root\CIMV2") 
Set colNetworkAdapters = objService.ExecQuery("SELECT * FROM Win32_NetworkAdapter") 
 
NetworkInfo = "Параметры сетевого адаптера" & vbCrLf & vbCrLf
 
' Начинаем перебор коллекции
For Each objItem in colNetworkAdapters
    ' Начинаем перебор всех свойств для текущего экземпляра класса WMI
    For Each objClassProperty In objItem.Properties_
        ' Если значение больше 0
        If Len(objClassProperty.value)>0 Then 
            NetworkInfo = NetworkInfo & objClassProperty.Name &"= " & objClassProperty.value &vbCrLf
        End If
    Next
    NetworkInfo = NetworkInfo & "----------------------------------------------" &vbCrLf &vbCrLf
Next 
 
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 " & TempPath
End Sub

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

//**************************************************************
// Параметры сетевого адаптера
// Win32_NetworkAdapter.js
//**************************************************************
 
var objWMIService, colItems, objItem
var NetworkInfo, objItemC, objClassPropertyC, objClassProperty, strVal
var TempPath, TxtFile
 
// Получаем доступ к инструментарию Windows Management Instrumentation
objWMIService = GetObject("WinMgmts:\\\\.\\Root\\CIMV2");
// выполняем WQL запрос и получаем коллекцию
colItems = objWMIService.ExecQuery ("Select * from Win32_NetworkAdapter");
 
// Начинаем перебор коллекции
objItem = new Enumerator(colItems);
 
NetworkInfo = "Параметры сетевого адаптера\n\n";
 
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 += "----------------------------------------------\n\n";
}
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);
}
Оцените статью
Технологии программирования и ведение блога
Добавить комментарий