#本脚本获取远程服务器的CPU使用情况
#选择服务器名称的录入方式
if (!$continue)
{
$continue = Read-Host "是否手动输入服务器名称,请选择 Y 手动输入 或 N 从文本文件读取"
}
if ($continue -ne "N")
{
#手动批量录入服务器名称
$listadd = $false
$list = 1
$ComPList = New-Object System.Collections.ArrayList #定义PSList数组
While ($listadd -eq $false)
{
if($ComPName -eq "N")
{
$listadd = $true
}
else
{
$ComPName = Read-Host "请输入第 $list 台服务器名称(按N键结束输入)"
if($ComPName -ne "N")
{
$ComPList.Add("$ComPName")
$list += 1
}
}
}
}
else
{
$filepath = Read-Host "请输入文本文件地址(文本文档内参数需每输入一个换一次行)"
$ComPList = Get-Content "$filepath"
}
#输出结果
foreach ($Server in $ComPList)
{
#服务器CPU、内存、硬盘使用信息
$cpu = gwmi –computername $Server win32_Processor
$men = gwmi -ComputerName $Server win32_OperatingSystem
$Disks = gwmi –computername $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 "服务器$Server 当前系统状态信息如下:" -ForegroundColor Red
Write-Host "============================================================"
Write-Host "CPU利用率: $Havecpu" -ForegroundColor Green
Write-Host "内存总数:$Allmen" -ForegroundColor Green
Write-Host "内存可用数:$Freemen" -ForegroundColor Green
Write-Host "内存使用率:$Permem" `n -ForegroundColor Green
foreach ($Disk in $Disks)
{
$Size = "{0:0.0} GB" -f ($Disk.Size / 1GB )
$FreeSpace = " {0:0.0} GB" -f ($Disk.FreeSpace / 1GB)
$Used = ([int64]$Disk.size - [int64]$Disk.freespace)
$SpaceUsed = " {0:0.0} GB" -f ($Used / 1GB)
$Percent ="{0:0.0} %" -f ($Used * 100 / $Disk.Size)
Write-Host $Disk.deviceid $Disk.volumename"盘总空间: $Size" -ForegroundColor Green
Write-Host $Disk.deviceid $Disk.volumename"空闲空间: $FreeSpace" -ForegroundColor Green
Write-Host $Disk.deviceid $Disk.volumename"使用空间: $SpaceUsed" -ForegroundColor Green
Write-Host $Disk.deviceid $Disk.volumename"使用百分比: $Percent `n" -ForegroundColor Green
}
Write-Host "============================================================"
#获取当前正在运行的服务名称
Write-Host "服务器$Server 当前正在运行的服务如下:" -ForegroundColor Red
Write-Host "============================================================"
get-service -ComputerName $Server| where-object {$_.Status -eq "Running"} | format-table -property Name,DisplayName -auto
Write-Host "============================================================"
}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
运行效果如下:
![](https://i-blog.csdnimg.cn/blog_migrate/ab3e253e1f3d21684a8cd510a80bd671.jpeg)