Похоже, вам нужно копаться в суперклассе MSBattery :
Несколько классов в корне \ wmi возвращают результаты более чем одного класса. Это звучит странно, но это можно объяснить на примере.
Пространство имен содержит ряд классов, связанных с батареей в ноутбуках
gwmi -Namespace root\wmi -List *battery* MSBatteryClassEvent BatteryStatusChange BatteryTagChange MSBatteryClass BatteryStaticData BatteryRuntime BatteryCycleCount BatteryTemperature BatteryStatus BatteryFullChargedCapacity
Мы пока проигнорируем событие и изменим классы. Если мы выберем класс MSBattery, мы получим информацию из ряда других возвращенных классов - MSBattery - это суперкласс.
PS> gwmi -Namespace root\wmi -Class MSBatteryClass | select __class __CLASS ——- BatteryCycleCount BatteryFullChargedCapacity BatteryStaticData BatteryRuntime BatteryStatus
Примеры такой работы на моем ноутбуке:
Get-WmiObject -Namespace 'root\wmi' -Query 'select DeviceName, ManufactureName, Chemistry, DesignedCapacity from BatteryStaticData' __GENUS : 2 __CLASS : BatteryStaticData __SUPERCLASS : __DYNASTY : __RELPATH : __PROPERTY_COUNT : 4 __DERIVATION : {} __SERVER : __NAMESPACE : __PATH : Chemistry : 1852787020 DesignedCapacity : 48400 DeviceName : K52F-44 ManufactureName : ASUSTek PSComputerName : Get-WmiObject -Namespace 'root\wmi' -Query 'select FullChargedCapacity from BatteryFullChargedCapacity' __GENUS : 2 __CLASS : BatteryFullChargedCapacity __SUPERCLASS : __DYNASTY : __RELPATH : __PROPERTY_COUNT : 1 __DERIVATION : {} __SERVER : __NAMESPACE : __PATH : FullChargedCapacity : 47157 PSComputerName : Get-WmiObject -Namespace 'root\wmi' -Query 'select CycleCount from BatteryCycleCount' __GENUS : 2 __CLASS : BatteryCycleCount __SUPERCLASS : __DYNASTY : __RELPATH : __PROPERTY_COUNT : 1 __DERIVATION : {} __SERVER : __NAMESPACE : __PATH : CycleCount : 0 PSComputerName :
Почему вроде? Потому что в то время как вы можете видеть, что DesignedCapacity
, FullChargedCapacity
и CycleCount
есть несколько значений, powercfg /batteryreport
оленья кожа recoginze их: