这是我的功能
{
$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
}
答案 0 :(得分:0)
这样的东西?
$input|
Foreach-Object {
Get-WmiObject -computername $_ -Query "SELECT __Server,FreePhysicalMemory,TotalVisibleMemorySize FROM Win32_OperatingSystem" |
Select @{l='SystemName';e={$_.__Server}},FreePhysicalMemory,TotalVisibleMemorySize
}
答案 1 :(得分:0)
如果您正在编写脚本,则无需在一个命令中执行所有操作。 Best practice #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);}}