1. 程式人生 > >PowerShell指令碼遠端獲取多臺伺服器系統狀態(CPU、記憶體、執行服務)

PowerShell指令碼遠端獲取多臺伺服器系統狀態(CPU、記憶體、執行服務)

#本指令碼獲取遠端伺服器的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 "============================================================" 
}

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

執行效果如下: