Reporting Skript
Hallo Zusammen,
ich habe mal, um des Lernens und Monitoring willens, ein kleineres Skript geschrieben, welches ich in der Aufgabenplanung laufen lassen will.
Ich würde gerne eure Meinung hierzu hören/wissen, was man noch hinzufügen könnte.
und die css
Grüße,
Tiberius
ich habe mal, um des Lernens und Monitoring willens, ein kleineres Skript geschrieben, welches ich in der Aufgabenplanung laufen lassen will.
Ich würde gerne eure Meinung hierzu hören/wissen, was man noch hinzufügen könnte.
<#
Anforderung: Installierte Powershell auf Installations- und Zielsystem; Berechtigungen; Exchangeserver
Das Tool erstellt Speicher-Reports für die Zielsystem und legt sie als Html-Datei in einem versteckten Ordner ab.
Die Reports werden per Mail verschickt. Am Ende eines Monats werden der momentane und der Report vom 1. versendet.
#>
#========AD-Abfrage nach den Zielsystemen========#
$Server = Get-ADComputer -Filter * | where {$_.name -like "vm*"} | select -ExpandProperty name | Sort-Object
#========Deklaration von Zeit-variablen========
$time = Get-Date -Format d
$ty = (Get-Date).Year
$tm = (Get-Date).Month
$tm2 = (Get-Date).AddDays(+1)
$tm2 = ($tm2).Month
#========Prüfung/Erstellung des Speicherorts der Reports========#
$path = "C:\Reports"
$search = Test-Path $path
if($Search -eq "True"){
}else{
New-Item $path -type directory
Set-ItemProperty $path -Name Attributes -Value ([System.IO.FileAttributes]::Hidden)
}
#========Erstellung der Tabellen========
$table1 = Get-WmiObject win32_logicaldisk -ComputerName $Server | where{$_.DriveType -eq 3} |select `
@{Expression={$_.PSComputername};Label="System"}, `
@{Expression={$_.DeviceID};Label="Partition"}, `
@{Expression={[decimal]("{0:N0}" -f($_.Size/1gb))};Label="Max.(GB)"},`
@{Expression={[decimal]("{0:N0}" -f($_.Freespace/1GB))};Label="Frei(GB)"}, `
@{Expression={if((($_.freespace/1gb)/($_.size/1gb))*100-gt 10) {"{0:P0}" -f(($_.freespace/1gb)/($_.size/1gb))}else{"{0:P0}" -f(($_.freespace/1gb)/($_.size/1gb))}};Name="Frei(%)"}, `
@{Expression={if((($_.freespace/1gb)/($_.size/1gb))*100-gt 10) {"OK"}else{"Warnung"}};Name="Status"}`
| ConvertTo-Html -as Table -Fragment -PreContent "<h2>Uebersicht</h2>" | Out-String
$table2 = Get-WmiObject win32_logicaldisk -ComputerName $Server | where{$_.DriveType -eq 3} |select `
@{Expression={if((($_.freespace/1gb)/($_.size/1gb))*100-gt 10){}else{$_.PSComputername}};Label="System"}, `
@{Expression={if((($_.freespace/1gb)/($_.size/1gb))*100-gt 10){}else{$_.DeviceID}};Label="Partition"} `
| ConvertTo-Html -as Table -Fragment -PreContent "<h3>Ueberpruefen</h3>" | Out-String
#========Erstellen der Report-Datei========#
ConvertTo-Html -Head "<h1>$time Serverreport: VM06-CIBS-DC1 </h1>" -PostContent $table1, $table2 -CssUri C:\style.css `
| Set-Content C:\Reports\Report_$time.html
#========Prüfung auf Datum========
if($tm2 -gt $tm){
$body = Get-Content C:\Reports\Report_01.$tm.$ty.html
$body2 = Get-Content C:\Reports\Report_$time.html
Send-MailMessage -From TestIT@mail.de -To TestIT@mail.de -Subject Server-Report -SmtpServer Test-msx -body "$body $body2" -BodyAsHtml
}else{
$body = Get-Content C:\Reports\Report_$time.html
Send-MailMessage -From TestIT@mail.de -To TestIT@mail.de -Subject Server-Report -SmtpServer Test-msx -body "$body" -BodyAsHtml
}
und die css
body{
background-color: white;
color:black;
}
table, th, td {
border: 1px solid #040;
border-collapse: collapse;
empty-cells: hide;
background-color: white;
font-family: Lucida Console;
font-size: 11pt;
text-align: center;
}
th{
background-color:cyan;
}
h1{
width:200pt;
background-color: limegreen;
color:black;
font-size: 15pt;
}
h2{
background-color:lightblue;
width:200pt;
}
h3{
background-color:orangered;
width:200pt;
}
Grüße,
Tiberius
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 253798
Url: https://administrator.de/contentid/253798
Ausgedruckt am: 21.11.2024 um 23:11 Uhr