Mit der Windows PowerShell gibt es sehr viele Aufgaben, welche man automatisch abarbeiten lassen kann. So ist eine u. a. das Auslesen des Speicherplatzes einer Festplatte*.
Mit dem folgendem PowerShell Script ist es möglich, eine Warnung zu erhalten, sobald der Speicherplatz kleiner als 10 % ist. Natürlich ist diese Information gerade für einen Dateiserver von äußerster Wichtigkeit.
Zunächst wird der Computername ausgelesen. Anschließend wird über das Cmdlet Get-WMIObject der freie Speicherplatz einer bestimmten Festplatte ausgelesen. Im Script wird dafür die c:\ Partition verwendet.
#Akutellen Computernamen auslesen
$PCname = (Get-WmiObject Win32_computersystem).Name
#Speicherplatz der Festplatte c:\ auslesen!
$Speicherplatzverbrauch = Get-WmiObject Win32_LogicalDisk -ErrorAction SilentlyContinue -Filter "name='c:'" | % {($_.freespace / $_.size)}
#Schleife zur Speicherberechnung
if ($Speicherplatzverbrauch -le '0.1') {
#Speicherplatz weniger als 10%
$Speicherplatz ="HDD Speicherplatz auf c:\ wird knapp!"
Write-Host $Speicherplatz
}
else {
#Speicherplatz noch größer als 10%
$Speicherplatz ="HDD Speicherplatz auf c:\ noch mehr als 10%"
Write-Host $Speicherplatz
}
Das obige Script wird natürlich bisher nicht automatisch abgerufen. Dies erreicht man, wenn man es z. B. in die Aufgabenplanung packt. Dort könnte man eine neue Aufgabe erstellen, sodass das Script einmal täglich abgerufen wird.
Wie man ein Script in die Aufgabenplanung einbindet, beschreibt der Artikel: Mit wenigen Klicks kann man auch ein Windows PowerShell Script in die Aufgabenplanung einbinden. Möchte man die Informationen aber nicht vom aktuellen Computer, auf welchem man sich gerade befindet, abrufen, so wäre es doch sinnvoll eine E-Mail Benachrichtigung zu erstellen.
Auch das geht hervorragend mit der Windows PowerShell. Wie man generell eine E-Mail per PowerShell versendet, liefert der folgende Artikel: So erstellt man eine E-Mail Benachrichtigung mit der Windows PowerShell.
Im Folgenden wurde das Script mit einer E-Mail Benachrichtigung erweitert. Die Parameter für die Adresse und des SMTP Servers müssen natürlich noch entsprechend angepasst werden.
#Akutellen Computernamen auslesen
$PCname = (Get-WmiObject Win32_computersystem).Name
#Speicherplatz der Festplatte c:\ auslesen!
$Speicherplatzverbrauch = Get-WmiObject Win32_LogicalDisk -ErrorAction SilentlyContinue -Filter "name='c:'" | % {($_.freespace / $_.size)}
#Email Daten festlegen
$abs="admin@it-learner.de"
$empf="mail@muster.de"
$sub="Servernachricht"
$smtp="mail.muster.de"
#Schleife zur Speicherberechnung
if ($Speicherplatzverbrauch -le '0.1') {
#Speicherplatz weniger als 10%
$Speicherplatz ="HDD Speicherplatz auf c:\ wird knapp!"
Write-Host $Speicherplatz
Send-MailMessage -From $abs -To $empf -Subject $sub -Body $Speicherplatz -SmtpServer $smtp
}
else {
#Speicherplatz noch größer als 10%
$Speicherplatz ="HDD Speicherplatz auf c:\ noch mehr als 10%"
Write-Host $Speicherplatz
}
Gerne könnte ihr euch das obige Script auch einfach downloaden:
Keine Produkte gefunden.









Danke 🙂 Sehr nützlich