Класс Win32_BaseBoard позволяет получить информацию о материнской плате, в его составе находятся 29 свойств, большая часть которых унаследована от других классов (будут указаны в круглых скобках). Сам Win32_BaseBoard происходит от класса CIM_Card, у которого в составе только 27 свойств.
Большая часть информации предоставляемая свойствами не будет отображаться, например, информация о материнской плате относительно ее размеров, веса, дата установки и так далее, видимо, все зависит от прошитых в самом чипе данных от производителя.
Характеристики класса Win32_BaseBoard:
- Провайдером является провайдер подсистемы Win32 (Win32 Provider) – смотрите статью «Провайдеры WMI — знакомство«.
- Класс расположен в пространстве имен rootCIMV2 – статья «Классы WMI, пространство имен и CIM«
- Файлы Cimwin32.mof и Cimwin32.dll
Параметры класса, его свойства и информацию о экземплярах удобно просматривать с помощью утилиты WMI CIM Studio.
Но прежде, давайте рассмотрим, какую информацию о материнской плате можно получить из класса Win32_BaseBoard средствами командной строки, а именно, утилиты WMIC. Попробуйте в консольном окне ввести следующие команды:
Вывод информации о свойствах и методах класса:
WMIC CLASS Win32_BaseBoard |
Вывод в табличном виде значения свойств для всех экземпляров класса во внешний файл:
WMIC PATH Win32_BaseBoard GET /FORMAT:HTABLE>d:\WORK\info.htm |
Выводим информацию о серийном номере материнской платы:
WMIC PATH Win32_BaseBoard GET SerialNumber
|
Хорошо, в командной строке попрактиковались, теперь можно приступить к описанию свойств класса Win32_BaseBoard.
Свойства Win32_BaseBoard
Caption – Короткое описание, (CIM_ManagedSystemElement).
ConfigOptions – свойство содержит в себе массив, в котором хранятся строковые значения, описывающие установки переключателей и перемычек на материнской плате
CreationClassName – Имя класса создателя, (CIM_PhysicalElement).
Depth — Глубина в дюймах, (CIM_PhysicalPackage).
Description – Полное описание, (CIM_ManagedSystemElement).
Height — Высота в дюймах, (CIM_PhysicalPackage).
HostingBoard – Если свойство возвращает значение TRUE, то данная плата является материнской или основной платой в корпусе, (CIM_Card).
HotSwappable – Если TRUE, значит можно на ходу произвести замену пакета эквивалентным элементом, как, например, вентилятор, (CIM_PhysicalPackage).
InstallDate – Дата установки, (CIM_ManagedSystemElement).
Manufacturer – Строковое значение, содержащее название производителя, (CIM_PhysicalElement).
Model – Собственно, название модели материнской платы, (CIM_PhysicalElement).
Name – В большинстве случаев, значение данного свойства совпадает со значением свойства Description, (CIM_ManagedSystemElement).
OtherIdentifyingInfo — дополнительная информация о материнской плате для идентификации продукта, (CIM_PhysicalElement).
PartNumber – Номер идентификации продукта, определенный производителем, (CIM_PhysicalElement).
PoweredOn – Определяет состояние питания: включено — TRUE, выключено – FALSE, (CIM_PhysicalElement).
Product – Номер материнской платы, заданный производителем.
Removable – если значение TRUE, значит продукт является съемным, (CIM_PhysicalPackage).
Replaceable — если значение TRUE, значит продукт является заменяемым, (CIM_PhysicalPackage).
RequirementsDescription – Строковое значение, описывающее отличительные характеристика данного продукта, (CIM_Card).
RequiresDaughterBoard — Логическое значение, указывающее, что по крайней мере одна дочерняя плата необходима для правильной работы, (CIM_Card).
SerialNumber – Собственно, серийный номер материнской платы, (CIM_PhysicalElement).
SKU – Инвентаризационный номер, (CIM_PhysicalElement).
SlotLayout — Описывает размещение разъема, ограничения, использование, расстояние между отдельными разъемами или любую другую информацию о разъемах на материнской плате, (CIM_Card).
SpecialRequirements – Если свойство вернет TRUE, значит материнская плата содержит отличительные характеристики по сравнению с другими платами этого типа, (CIM_Card).
Status – Строковое значение, определяющее информацию о статусе материнской платы, (CIM_ManagedSystemElement).
Значения:
- «OK»
- «Error»
- «Degraded»
- «Unknown»
- «Starting»
- «Pred Fail»
- «Stopping»
- «Service»
- «Stressed»
- «NonRecover»
- «No Contact»
- «Lost Comm»
Tag – Однозначная идентификация материнской платы, (CIM_PhysicalElement).
Version – Версия, (CIM_PhysicalElement).
Weight – Вес в фунтах, (CIM_PhysicalPackage).
Width – Ширина в дюймах, (CIM_PhysicalPackage).
Ниже показаны два сценария на языках vbscript — Win32_BaseBoard.vbs и jscript — Win32_BaseBoard.js, обратите внимание, что тут используются два цикла, первый – для обработки коллекции экземпляров, второй – для обработки всех свойств. Если значение свойства пустое, то информация выводится не будет. Также, добавлено дополнительное условие для проверки свойства ConfigOptions, так как оно является массивом, и без дополнительных функций значения не вывести.
'************************************************************** ' Информация о материнской плате ' Win32_Baseboard.vbs '************************************************************** Option Explicit dim strComputer, strNameSpace, objWMIService, colItems, BoardInfo, objItem, objClassProperty ' Поключенрие к локальной системе strComputer = "." strNameSpace = "\root\cimv2" ' Получаем доступ к инструментарию Windows Management Instrumentation Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & strNameSpace) ' выполняем WQL запрос и получаем коллекцию Set colItems = objWMIService.ExecQuery ("Select * from Win32_Baseboard") BoardInfo = "Информация о материнской плате" & vbCrLf & vbCrLf ' Начинаем перебор коллекции For Each objItem in colItems ' Начинаем перебор всех свойств для текущего экземпляра класса WMI For Each objClassProperty In objItem.Properties_ ' проверяем наличие свойства ConfigOptions if (objClassProperty.Name="ConfigOptions") then BoardInfo = BoardInfo & objClassProperty.Name &"= " & join(objClassProperty.value) &vbCrLf else ' Если значение больше 0 If Len(objClassProperty.value)>0 Then BoardInfo = BoardInfo & objClassProperty.Name &"= " & objClassProperty.value &vbCrLf End If end if Next BoardInfo = BoardInfo & "----------------------------------------------" Next ' Выводим содержимое переменной BoardInfo WScript.Echo BoardInfo |
//************************************************************** // Информация о материнской плате // Win32_Baseboard.js //************************************************************** var strComputer, strNameSpace, objWMIService, colItems, objItem var BoardInfo, objItemC, objClassPropertyC, objClassProperty, strVal // Поключенрие к локальной системе strComputer = "."; strNameSpace = "\\root\\cimv2"; // Получаем доступ к инструментарию Windows Management Instrumentation objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\" + strComputer + strNameSpace); // выполняем WQL запрос и получаем коллекцию colItems = objWMIService.ExecQuery ("Select * from Win32_Baseboard"); // Начинаем перебор коллекции objItem = new Enumerator(colItems); BoardInfo = "Информация о материнской плате\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){ //проверяем наличие свойства ConfigOptions if (objClassProperty.name == "ConfigOptions"){ BoardInfo+= objClassProperty.Name + "= " + (objClassProperty.value.toArray()).join(",") + "\n"; }else{ BoardInfo+= objClassProperty.Name + "= " + objClassProperty.value + "\n"; } } } BoardInfo += "----------------------------------------------"; } // Выводим содержимое переменной BoardInfo WScript.Echo(BoardInfo) |