繁体   English   中英

查询多个电池Powershell脚本get-wmiobject win32_battery

[英]query multiple batteries powershell script get-wmiobject win32_battery

因此,我尝试使用我发现的脚本来监视四个UPS,并将关闭信号发送到大约15台服务器。 我对PowerShell很陌生,希望在查询多个UPS单元方面获得一些帮助。

这是脚本:(很长一段时间,我认为pastebin会更容易): http : //pastebin.com/Uya5Nkwv

我尝试了以下方法,但无济于事。

PS C:\Users\myuser> get-wmiobject win32_battery | select "JS0745012650American P
ower ConversionSmart-UPS 2200 RM FW:665.6.D USB FW:7.3"

JS0745012650American Power ConversionSmart-UPS 2200 RM FW:665.6.D USB FW:7.3
----------------------------------------------------------------------------

PS C:\Users\myuser> get-wmiobject win32_battery | select EstimatedRunTime where
DeviceID like JS07*
Select-Object : A positional parameter cannot be found that accepts argument 'w
here'.
At line:1 char:37
+ get-wmiobject win32_battery | select <<<<  EstimatedRunTime where DeviceID li
ke JS07*
+ CategoryInfo          : InvalidArgument: (:) [Select-Object], ParameterB
indingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell
.Commands.SelectObjectCommand

PS C:\Users\myuser>

基本上有五个UP,当我这样做时

get-wmiobject win32_battery

我能够查看唯一标识符:

DeviceID                    : JS0748005250American Power ConversionSmart-UPS 30
                          00 RM FW:666.6.D USB FW:7.3

那么如何查询上述脚本中的所有 UPS? 一旦确定了操作方法,就可以确定关闭信号/ csv文件了。

您无需手动遍历电池,实际上,您已经有99%的电池了。

Get-WmiObject win32_battery | Where-Object {$_.DeviceID -match "JS07"} | select estimatedruntime

假设所有DeviceID都包含JS07作为其标识符的一部分,那么这应该可以完全满足您的要求。

如果您需要更多信息,例如设备ID或名称:

Get-WmiObject win32_battery | Where-Object {$_.DeviceID -match "JS07"} | select Name, estimatedruntime

修改该脚本以遍历计算机名称列表。 从第94行开始,插入一个foreach语句,例如foreach ($computer in 'pc1','pc2','pc3','pc4') {并在脚本末尾添加一个结束foreach ($computer in 'pc1','pc2','pc3','pc4') { } 这将在您提供的每台计算机上循环脚本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM