0

这是我的功能

{
$input|Foreach-Object{Get-WmiObject -computername $_ win32_processor | Measure-Object -property LoadPercentage -Average | Select SystemName, Average}
}

我知道我不能将 SystemName 放在最后一个管道上。如何在包含系统名称的结果中添加另一列。我还有一个单独的内存使用代码,我想结合这两个代码(cpu 和内存使用)。

 {   
$input|Foreach-Object{Get-WmiObject -computername $_ -Query "SELECT FreePhysicalMemory,TotalVisibleMemorySize FROM Win32_OperatingSystem" | Select FreePhysicalMemory,TotalVisibleMemorySize
}
4

2 回答 2

0

如果您正在编写脚本,则不必在一个命令中完成所有操作。最佳实践#12

从 PowerShell cmdlet 或函数输出信息的正确方法是创建一个包含数据的对象,然后使用 Write-Output 将该对象写入管道。

$pcs | % {New-Object -Typename psobject -Property @{'System'=$_;'Average'=((Get-WMIObject -ComputerName $_ -Class win32_processor | Measure-Object -property LoadPercentage -Average).Average);}}
于 2013-03-21T20:55:53.477 回答
0

像这样的东西?

$input|
Foreach-Object {
 Get-WmiObject -computername $_ -Query "SELECT __Server,FreePhysicalMemory,TotalVisibleMemorySize FROM Win32_OperatingSystem" |
  Select @{l='SystemName';e={$_.__Server}},FreePhysicalMemory,TotalVisibleMemorySize
}
于 2013-03-21T15:06:36.217 回答