能不能帮我这三个脚本合并到一个格式是这样的获取使用PowerShell
ComputerName CPUUsageAverage MemoryUsage C PercentFree
xxx 12 50% 30%
我执行这一问题的方法是: Get-content '.\servers.txt' | Get-CPUusageAverage
这里是脚本:
CPU
Function Get-CPUusageAverage
{
$input|Foreach-Object{Get-WmiObject -computername $_ win32_processor | Measure-Object -property LoadPercentage -Average | Select Average}
}
内存
Function get-MemoryUsage
{
$input|Foreach-Object{
gwmi -Class win32_operatingsystem -computername $_ |
Select-Object @{Name = "MemoryUsage"; Expression = { “{0:N2}” -f ((($_.TotalVisibleMemorySize - $_.FreePhysicalMemory)*100)/ $_.TotalVisibleMemorySize) }
}
}
}
ÇPercentFree
Function get-CPercentFree
{
$input|ForEach-Object{
Get-WmiObject -Class win32_Volume -ComputerName $_ -Filter "DriveLetter = 'C:'" |
Select-object @{Name = "C PercentFree"; Expression = { “{0:N2}” -f (($_.FreeSpace/$_.Capacity)*100) } }
}
}
任何想法是什么导致CPU的输出像 '@ {Average = 46}'和第三列的ComputerName列? – Dumont
哈希表的方法。如果你在V3上,你可以将'new-object ...'行改成'[pscustomobject] [ordered] @ {'来修改属性的顺序。 –