![通过 SNMP 查询 Windows Server 电池电量](https://linux22.com/image/558782/%E9%80%9A%E8%BF%87%20SNMP%20%E6%9F%A5%E8%AF%A2%20Windows%20Server%20%E7%94%B5%E6%B1%A0%E7%94%B5%E9%87%8F.png)
我有一台 Windows Server 2003 计算机,已启用 SNMP。我希望能够查询服务器的电池电量,因为它通过 USB 电缆连接到 APC UPS。
到目前为止我可以做到:
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。有什么想法吗?
答案1
您可以从 WMI 获取更多信息。Win32_电池课程应该能满足你的需要。
我建议从 Microsoft 下载 scriptomatic2,以了解该类提供的内容以及一些入门代码,以便您开始使用。(为了获得最佳效果,请将 Scriptomatic 可执行文件复制到该计算机并从那里运行它,以便它可以读取系统的 CIM 命名空间。)
答案2
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'`