Windows Server 2012中使用Powershell

时间:2017-08-18 14:39:39

标签: powershell wmi get-wmiobject

当我们停电时,我正在写一个Powershell脚本来进行一些服务器管理。目前脚本正在使用WMI Win32)Battery类来查看BatteryStatus是1(放电)还是2(未知(A / C)),但我不确定这是最好的方法。有几种状态可以同时成立。

例如,电池可以是放电(1)和部分充电(11)或开启AC(2)但是关键(5)或充电(6)或部分充电(11)。这对我来说没有意义。 BatteryStatus对我的预期目的是否可靠? Windows如何确定返回哪个状态?在我的测试中,除了1或2的状态之外,我还没有看到任何其他内容。

Win32_Battery的文档表明可用性也可能表明我们正在使用电池。这是一个更好的方法,可能是BatteryStatus和Availability的组合吗?

在我寻找答案时,我发现了the perfect answer的内容,使用" PowerOnline"来自root \ wmi命名空间中未记录的BatteryStatus类。这在我的笔记本电脑上工作得很好,但在尝试从我们的Windows 2012服务器访问它时出现以下错误:

PS C:\Windows\system32> gwmi -Class batterystatus -Namespace root\wmi 
gwmi : Invalid class "batterystatus"
At line:1 char:1
+ gwmi -Class batterystatus -Namespace root\wmi
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidType: (:) [Get-WmiObject], ManagementException
    + FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

这个类在服务器上不可用吗?

因此,使用WMI,了解我是使用UPS电池还是交流电源的最可靠方法是什么?

0 个答案:

没有答案