将CPU信息提取到Powershell中的变量中

时间:2018-10-25 22:35:20

标签: powershell

我试图将cpu信息获取到Powershell中的变量中,我可以通过多种方式获取cpu信息,即

Get-WmiObject win32_processor | select LoadPercentage  |fl

产生

PS C:\powershell> Get-WmiObject win32_processor | select LoadPercentage  |fl

LoadPercentage : 15

但是如何将这个“ 15”值转换为变量以供以后使用。最初,我以为我可以将命令的输出分配给变量,然后进行拆分或字符串操作,但是运气不好,因为输出似乎是呈现为字符串的对象数组。

2 个答案:

答案 0 :(得分:2)

如果您执行format-list或其他一些输出,则将其分配给变量很困难。

如果您丢下|fl,那应该不错。

$CPULoad = Get-WmiObject win32_processor | select LoadPercentage

然后您可以执行$CPULoad并获得

LoadPercentage
--------------
            15

或者您可以执行$CPULoad.LoadPercentage并将以下内容作为int

5

答案 1 :(得分:-1)

Get-WmiObject Win32_Processor
可以通过使用gwmi别名来缩短

gwmi win32_Processor

您需要的是一种仅选择所需信息的好方法。 为此,选择所需的属性。 然后,将返回的对象通过管道传递到Select-Object cmdlet。 这是为了删除返回的WMI对象自动包含的系统属性。 为避免两次键入属性(一次输入Get-WmiObject cmdlet,一次输入一次Select-Object cmdlet),请将属性数组存储在$property变量中。 在这种情况下,只有一个。 您可以通过以下方式获得列表:

$property = "systemname","maxclockspeed","addressWidth","numberOfCores"

但是您只想:

$property = "LoadPercentage"

Get-WmiObject -class win32_processor -Property  $property |
    Select-Object -Property $property