hier Newbie :-)Powershell - Mulitple Server CPU/Mem/C-Laufwerk Statistik - Gesamt Durchschnitt
Hoffe, dass Sie alle gut und für etwas Unterstützung zu erreichen;
Ich habe auch einen Code, der CPU/Mem/C Drive Statistiken für mehrere Server generieren kann, und hoffte, um Hilfe zu bitten, wenn dies einen Gesamtdurchschnitt aller Server haben könnte? Mit dem unten stehenden Skript gibt es eine Möglichkeit, den Gesamtdurchschnitt aller Server zu erfassen, die ich gesammelt habe (z. B. 10 Server).
$ServerListFile = "D:\serverList.txt"
$ServerList = Get-Content $ServerListFile -ErrorAction SilentlyContinue
$Result = @()
ForEach($computername in $ServerList)
{
$AVGProc = Get-WmiObject -computername $computername win32_processor |
Measure-Object -property LoadPercentage -Average | Select Average
$OS = gwmi -Class win32_operatingsystem -computername $computername |
Select-Object @{Name = "MemoryUsage"; Expression = {“{0:N2}” -f ((($_.TotalVisibleMemorySize - $_.FreePhysicalMemory)*100)/ $_.TotalVisibleMemorySize) }}
$vol = Get-WmiObject -Class win32_Volume -ComputerName $computername -Filter "DriveLetter = 'C:'" |
Select-object @{Name = "C PercentFree"; Expression = {“{0:N2}” -f (($_.FreeSpace/$_.Capacity)*100) } }
$result += [PSCustomObject] @{
ServerName = "$computername"
CPULoad = "$($AVGProc.Average)%"
MemLoad = "$($OS.MemoryUsage)%"
CDrive = "$($vol.'C PercentFree')%"
}
$Outputreport = "<HTML><TITLE> Server Health Report </TITLE>
<BODY background-color:peachpuff>
<font color =""#99000"" face=""Microsoft Tai le"">
<H2> Server Health Report </H2></font>
<Table border=1 cellpadding=0 cellspacing=0>
<TR bgcolor=gray align=center>
<TD><B>Server Name</B></TD>
<TD><B>Avrg.CPU Utilization</B></TD>
<TD><B>Memory Utilization</B></TD>
<TD><B>Drive C Free Space</B></TD>
</TR>"
Foreach($Entry in $Result)
{
if(($Entry.CpuLoad) -or ($Entry.memload) -ge "80")
{
$Outputreport += "<TR bgcolor=white>"
}
else
{
$Outputreport += "<TR>"
}
$Outputreport += "<TD>$($Entry.Servername)</TD><TD align=center>$($Entry.CPULoad)</TD><TD align=center>$($Entry.MemLoad)</TD><TD align=center>$($Entry.CDrive)</TD></TR>"
}
$Outputreport += "</Table></BODY></HTML>"
}
$Outputreport | out-file "D:\Result $(Get-Date -Format yyy-mm-dd-hhmm).htm"
Hallo Mathias erwartet, Vielen Dank für Ihre Antwort; Leider bekomme ich keinen Wert auf das Ergebnis, und was ich auf dem Testergebnis sehe, ist das Einfügen einer weiteren Zeile in jeden Server, den es bekommt. Es kann wahrscheinlich sein, wo ich Ihren Code platzieren; immer noch unsicher, warum es einen leeren Wert zurückgibt. – Gibo
Kann ich es bei der Anzeige des Ergebnisses auch zurück in Prozent konvertieren? sollte ich verwenden LoadPercentage -Verbrauch oder einfach nur "$ ($ CPUAve)%" – Gibo