我有一台 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 端查看的内容。