Назад | Перейти на главную страницу

Запрос уровня заряда батареи Windows Server через SNMP

У меня есть машина с Windows Server 2003 с включенным протоколом SNMP. Я хочу иметь возможность запрашивать уровень заряда батареи сервера, поскольку он подключен к ИБП APC через USB-кабель.

Пока могу:

snmpwalk -Os -c public -v 1 192.168.128.2 1.3.6.1.4.1.318

И получить:

enterprises.318.1.1.1.4.1.1.0 = INTEGER: 1
enterprises.318.1.2.1.1.1.0 = STRING: "PowerChute Business Edition Agent, (C) 2001 APC."

Однако я и близко не могу получить фактический OID, который показывает процент оставшегося заряда батареи. Любые идеи?

OID: .1.3.6.1.4.1.318.1.1.1.2.2.1.0.
Кроме того, чтобы получить значение в bash и использовать его в сценарии, выполните:

# snmp query that returns battery level
BATTERY=`snmpwalk -Os -c public -v 1 192.168.0.107 .1.3.6.1.4.1.318.1.1.1.2.2.1.0 | sed 's/.*: //g'`
# snmp query that returns input voltage
INPUT_VOLTAGE=`snmpwalk -Os -c public -v 1 192.168.0.107 .1.3.6.1.4.1.318.1.1.1.3.2.1.0 | sed 's/.*: //g'`

Вы можете получить более подробную информацию из WMI. В Win32_Battery класс должен дать вам то, что вам нужно.

Я рекомендую загрузить scriptomatic2 от Microsoft, чтобы увидеть, что предоставляет этот класс, и немного начального кода, который поможет вам начать работу. (Для достижения наилучших результатов скопируйте исполняемый файл Scriptomatic на этот компьютер и запустите его оттуда, чтобы он мог прочитать пространство имен CIM системы.)