测量另一个系统上的电池续航时间?

测量另一个系统上的电池续航时间?

我有一台 Linux 计算机和 Microsoft Vista 笔记本电脑。我想知道笔记本电脑上的电池可持续使用多久。我怎样才能为此编写一个脚本,即如何在电源线拔出时以及何时停止向 Linux 发送 ping 时检查 Linux?我尝试从

#!/bin/bash
time (
    while [ true ]; do
        ping -c 1 "$1" > /dev/null || break
        sleep 1
    done
)

但现在我需要修改脚本来读取电源线是否已插入。

答案1

Windows有一个API叫做WMI。 - Windows 管理工具

目的

Windows Management Instrumentation (WMI) 是基于 Windows 的操作系统上管理数据和操作的基础结构。您可以编写 WMI 脚本或应用程序来自动执行远程计算机上的管理任务,但 WMI 还向操作系统和产品的其他部分提供管理数据,例如 System Center Operations Manager(以前称为 Microsoft Operations Manager (MOM))或 Windows 远程管理( WinRM)。

它是一种类似于 SNMP 或 JMX 的专有技术。两者都主要用于监控系统,例如纳吉奥斯或者扎比克斯

要通过网络检索此信息,只需启用 WMI(您可以在 Windows 相关论坛上找到更多信息)并使用适用于 linux 的 wmi 客户端,例如wmi客户端

例子:

wmic -U Administrator%mysecret //192.168.20.20 "Select WorkingSetSize from Win32_Process Where CommandLine like '%java.exe%'"

此命令将使用管理员帐户和“mysecret”密码在 192.168.20.20 上进行查询,获取进程数组并搜索名称类似于的任何进程java.exe

win32_battery是检索笔记本电脑电源信息的正确类。例子这里。这只是使用EstimatedChargeRemaining变量来获取您想要的信息的问题Win32_电池类,在 Linux 上使用 wmi-client。

编辑1:Win32_Battery 在我的工作站上不起作用,可能是因为它是虚拟桌面并且根本没有电池。但是,我可以进行其他 WMI 查询:

[root@host ~]# wmic -U nicolas -W DOMAIN  //192.x.x.x "SELECT Caption FROM Win32_OperatingSystem"
Password for [DOMAIN\nicolas]:
CLASS: Win32_OperatingSystem
Caption
Microsoft Windows 7 Enterprise

在这种情况下,我曾经-W告诉命令它必须使用的域/工作组是什么,而不是默认的WORKGROUP

相关内容:- 您应该在 Windows 端查看的内容。

  • 如何在 Windows XP 或 Windows 7 上启用 WMI -关联
  • 如何编译 wimc(wmi-client) -关联
  • 如何打开 WMI 的 Windows 防火墙端口 -关联

相关内容