Windows底下用PowerShell寫的獲取CPU核數、占用率;內存可用內存大小(GB)、使用率;硬盤總空余大小(GB),使用率
$Server = $env:computername
#server's CPU Mem Hardinfor
$IpAdd = (Get-WmiObject -class win32_NetworkAdapterConfiguration -Filter 'ipenabled = "true"').ipaddress[0]
$SystemVersion = Get-WmiObject -Class Win32_OperatingSystem | Select-Object -ExpandProperty Caption
$cpu = gwmi -computername $Server win32_Processor
$men = gwmi -computername $Server win32_OperatingSystem
$Disks = gwmi -Computer: $Server win32_logicaldisk -filter "drivetype=3"
$Havecpu = "{0:0.0} %" -f $cpu.LoadPercentage
$Allmen = "{0:0.0} MB" -f ($men.TotalVisibleMemorySize / 1KB)
$Freemen = "{0:0.0} MB" -f ($men.FreePhysicalMemory / 1KB)
$Permem = "{0:0.0} %" -f ((($men.TotalVisibleMemorySize-$men.FreePhysicalMemory)/$men.TotalVisibleMemorySize)*100)
Write-Host "Computer:$Server|"`r`n
Write-Host "SystemVersion:$SystemVersion|"`r`n
Write-Host "Ipaddress:$IpAdd|"`r`n
Write-Host "CPU: $Havecpu|"`r`n
Write-Host "TotalMem:$Allmen|"`r`n
Write-Host "FreeMem:$Freemen|"`r`n
Write-Host "UsedMem:$Permem|"`r`n
將之封閉為BAT運行,並將結果COPY至統一機器共享內:
powershell .\GetCPUMem.ps1 > \\XXX\Iperf\log\%computername%.txt
下一步,必然是通過BAT或PS在每個客戶機上建立相應的SCHEDULE TASK啦。
然后,集中數據,一方面將數據導入SQL用於以后分析,通過WEB即時訪問,固定時間通過郵件發送REPORT。
https://blog.csdn.net/sinat_28371057/article/details/91376741