Powershell и батарея ноутбука
Возможно кому то будет полезна, мне по крайней мере, оно нужно пару раз в год, поэтому и решил что не мешает бы увековечить эту тему. Очень редко, но все же случается, что при написании скриптов под задачи выполняемые не на стационарах надо учитывать не только состояние батареи, но и уровень ее заряда.
Запрашиваем соответствующий класс
gwmi win32_battery
Что бы было красиво выполняем вот такой запрос
Get-wmiobject win32_battery | select Availability,EstimatedRunTime,EstimatedChargeRemaining,BatteryStatus,PSComputername
Из которого нам потребуется всего лишь
(Get-WmiObject win32_battery).estimatedChargeRemaining
Заодно запросим вот эту полезную штуку
(Get-WmiObject win32_battery).batterystatus
Где код ответа будет иметь следующие значения
Value | Meaning |
1 | The battery is discharging. |
2 | The system has access to AC so no battery is being discharged. However, the battery is not necessarily charging. |
3 | Fully Charged |
4 | Low |
5 | Critical |
6 | Charging |
7 | Charging and High |
8 | Charging and Low |
9 | Charging and Critical |
10 | Undefined |
11 | Partially Charged |
Вполне логично будет предположить что этот момент хотелось бы автоматизировать.
$bstatus = (Get-WmiObject -Class Win32_Battery —ea 0).BatteryStatus
if($bstatus) {
switch ($bstatus)
{
1 { "Battery is discharging" }
2 { "The system has access to AC so no battery is being discharged. However, the battery is not necessarily charging." }
3 { "Fully Charged" }
4 { "Low" }
5 { "Critical" }
6 { "Charging" }
7 { "Charging and High" }
8 { "Charging and Low" }
9 { "Charging and Critical " }
10 { "Unknown State" }
11 { "Partially Charged" }
}
}
Ну не забываем еще про availability
Get-wmiobject win32_battery |
select @{Name="Availability";Expression={
Switch ($_.Availability) {
1 { "Other" ;break}
2 { "Unknown" ;break}
3 { "Running or Full Power";break}
4 { "Warning" ;break}
5 { "In Test";break}
6 { "Not Applicable";break}
7 { "Power Off";break}
8 { "Off Line";break}
9 { "Off Duty";break}
10 { "Degraded";break}
11 { "Not Installed";break}
12 { "Install Error";break}
13 { "Power Save — Unknown";break}
14 { "Power Save — Low Power Mode" ;break}
15 { "Power Save — Standby";break}
16 { "Power Cycle";break}
17 { "Power Save — Warning";break}
}
}},EstimatedRunTime,EstimatedChargeRemaining,BatteryStatus,PSComputername
Только полноправные пользователи могут оставлять комментарии. Аутентифицируйтесь пожалуйста, используя сервисы.