Класс Win32_BaseBoard — Информация о материнской плате

Класс Win32_BaseBoard — Информация о материнской плате Объектная модель Windows Management Instrumentation

Класс Win32_BaseBoard позволяет получить информацию о материнской плате, в его составе находятся 29 свойств, большая часть которых унаследована от других классов (будут указаны в круглых скобках). Сам Win32_BaseBoard происходит от класса CIM_Card, у которого в составе только 27 свойств.

Большая часть информации предоставляемая свойствами не будет отображаться, например, информация о материнской плате относительно ее размеров, веса, дата установки и так далее, видимо, все зависит от прошитых в самом чипе данных от производителя.

Характеристики класса Win32_BaseBoard:

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

Параметры класса, его свойства и информацию о экземплярах удобно просматривать с помощью утилиты WMI CIM Studio.

Информация о материнской плате в утилите 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).

Ниже показаны два сценария на языках vbscriptWin32_BaseBoard.vbs и jscriptWin32_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)
Оцените статью
Технологии программирования и ведение блога
Добавить комментарий