Achtung – die Überprüfung des Festplattenspeichers auf einem Windows-Rechner ist nicht immer so einfach wie ein Klick, insbesondere bei der Verwaltung von Remote-Servern oder dem Wunsch nach automatisierten Benachrichtigungen. Dieser Artikel erklärt detailliert, wie Sie mithilfe von PowerShell und WMI Festplatteninformationen abrufen können. Das ist zwar praktisch, kann aber schnell unübersichtlich werden, wenn man nicht weiß, wo man anfangen soll. Wenn Sie außerdem Pop-ups oder E-Mail-Warnungen einrichten möchten, sobald der Speicherplatz knapp wird, kommt die Skripterstellung ins Spiel. Daher kann das Verständnis der Befehle und deren Anpassung an Ihre individuelle Konfiguration Ihnen später viel Ärger ersparen.
So beheben und zeigen Sie den Festplattenspeicher in Windows mithilfe von PowerShell an
Lokalen freien Speicherplatz auf Laufwerken mit PowerShell prüfen
Diese Methode eignet sich am besten, wenn Sie nur schnell den freien Speicherplatz Ihrer Laufwerke überprüfen möchten. Sie nutzt die WMI-Klasse ` Win32_LogicalDisk`Get-WmiObject, die Informationen zu Ihren logischen Laufwerken enthält. Die Ausführung von `Win32_LogicalDisk` oder dessen modernerem Nachfolger `Win32_LogicalDisk` Get-CimInstanceruft diese Informationen in der Shell ab. Wenn die Meldung „Nicht in PowerShell Core unterstützt“ erscheint, ersetzen Sie einfach `Win32_LogicalDisk` Get-WmiObjectdurch `Win32_LogicalDisk` Get-CimInstance. Die Ausgabe enthält die Laufwerksgröße, den freien Speicherplatz und einen prozentualen Anteil, sodass Sie leichter erkennen können, welche Laufwerke belegt sind.
Hier ist der Befehl:
Get-WmiObject -Class Win32_LogicalDisk | Select-Object -Property DeviceID, VolumeName, @{Label='FreeSpace (Gb)'; expression={($_. FreeSpace/1GB).ToString('F2')}}, @{Label='Total (Gb)'; expression={($_. Size/1GB).ToString('F2')}}, @{label='FreePercent'; expression={[Math]::Round(($_. FreeSpace/ $_. Size)*100, 2)}} | Format-Table -AutoSize
Profi-Tipp: Behalten Sie den freien Speicherplatz im Auge. Bei manchen Systemen zeigt dieser Bericht Tausende von Gigabytes freien Speicherplatz an, obwohl die Festplatte eigentlich voll ist – das liegt an ungewöhnlichen Festplattenkonfigurationen oder fehlerhaft gemeldeten Daten, was durchaus vorkommen kann.Überprüfen Sie daher immer die Festplattenverwaltung, wenn Ihnen etwas komisch vorkommt.
Richten Sie automatische Benachrichtigungen ein, wenn der Speicherplatz knapp wird.
Wenn Sie nicht ständig Skripte manuell ausführen möchten, kann die Einrichtung eines geplanten Tasks, der dieses Skript ausführt und Ihnen Benachrichtigungen sendet, sehr hilfreich sein. Sie können das Skript so anpassen, dass es Popups mit Wscript. Shell anzeigt oder E-Mails auslöst Send-MailMessage. So werden Sie sofort benachrichtigt, wenn beispielsweise der Speicherplatz unter 20 % fällt – ähnlich einer Dashboard-Warnung, nur automatisiert.
Hier ist ein Beispielcode-Ausschnitt, der den Speicherplatz prüft und eine Meldung ausgibt, wenn dieser unter bestimmten Schwellenwerten liegt:
$percentWarning = 20 $percentCritical = 5 $disks = Get-WmiObject -Class Win32_LogicalDisk foreach ($disk in $disks) { if ($disk. Size -ne $null) { $freePercent = [Math]::Round(($disk. FreeSpace / $disk. Size) * 100, 2) if ($freePercent -lt $percentWarning) { $message = "Warning: Disk $($disk. DeviceID) has only $freePercent% free" if ($freePercent -lt $percentCritical) { $message = "CRITICAL! Disk $($disk. DeviceID) almost full!" } $wshell = New-Object -ComObject Wscript. Shell $wshell. Popup($message, 10, "Disk Space Alert", 64) } } }
Dieses kleine Skript zeigt Pop-ups an, kann aber auch so angepasst werden, dass es E-Mail-Benachrichtigungen versendet oder über die Aufgabenplanung zeitgesteuert ausgeführt wird. Beachten Sie jedoch, dass das Pop-up bei hoher Systemauslastung oder instabilen Verbindungen möglicherweise nicht sofort erscheint.
E-Mail-Versand bei geringem Speicherplatz
Wenn Popup-Benachrichtigungen nicht ausreichen, ist der Versand einer E-Mail oft sinnvoller – insbesondere bei der Verwaltung mehrerer Server. Tragen Sie einfach Ihre SMTP-Serverinformationen ein Send-MailMessage. Bei hohen Sicherheitsanforderungen benötigen Sie möglicherweise ein separates Konto. Führen Sie das Skript aus, und Ihre E-Mail wird automatisch versendet, sobald der Speicherplatz unter einen bestimmten Schwellenwert fällt.
Beispielhafter Befehlsausschnitt:
Send-MailMessage -To "[email protected]" -From "[email protected]" -Subject "Low Disk Space Alert on $env:computername" -Body "Disk $($disk. DeviceID) only has $($disk. FreeSpace/1GB) GB free." -SmtpServer smtp.yourprovider.com -Port 587 -Credential (Get-Credential) -UseSsl
Hinweis: Sie werden zur Eingabe Ihrer Zugangsdaten aufgefordert, sofern Sie diese nicht fest im Code hinterlegen oder sicher speichern. Nicht die beste Lösung, aber für schnelle Tests geeignet.
So überprüfen Sie den Speicherplatz auf einem Remote-Datenträger in PowerShell
Wenn Sie mehrere Server verwalten, ist es wahrscheinlich sinnvoller, Prüfungen remote durchzuführen, anstatt jeden einzelnen Rechner manuell zu überprüfen. Mit dem Befehl „Invoke-Command“ ist genau das möglich. Sie schreiben Ihr Prüfskript, und es wird auf den Remote-Hosts über WSMan ausgeführt, vorausgesetzt, Sie verfügen über die erforderlichen Berechtigungen und WinRM ist korrekt konfiguriert.
Hier ein kurzes Beispiel:
Invoke-Command -ComputerName server1, server2 -ScriptBlock { Get-WmiObject -Class Win32_LogicalDisk | Select-Object DeviceID, FreeSpace, Size }
Oder, wenn Sie Daten aus Active Directory abrufen, können Sie eine Liste der Server erhalten und diese nacheinander durchlaufen – ähnlich wie bei einer Stapelverarbeitung:
$servers = (Get-ADComputer -Filter 'operatingsystem -like "*Windows Server*" -and enabled -eq $true').Name foreach ($server in $servers) { Invoke-Command -ComputerName $server -ScriptBlock { Get-WmiObject -Class Win32_LogicalDisk | Select-Object DeviceID, FreeSpace, Size } }
Eine weitere Möglichkeit ist die Verwendung von RemoteWMI, das mitunter etwas heikler ist, insbesondere bei Firewalls oder Berechtigungen. In einer Konfiguration hat es jedoch funktioniert. Beachten Sie: Für die Massenüberwachung sind Tools wie Zabbix oder Nagios möglicherweise zuverlässiger und einfacher zu skalieren.
Ehrlich gesagt, wenn Sie das nicht korrekt mit den richtigen Berechtigungen und geplanten Ausführungen einrichten, könnten Sie die Überprüfung wichtiger Datenträger vergessen, was zu Systemproblemen führen kann. Daher ist die Automatisierung mit PowerShell und einigen regelmäßigen Überprüfungen absolut sinnvoll.
Zusammenfassung
Dieser Ansatz ist sehr flexibel: Er ermöglicht schnelle lokale Prüfungen, die Überwachung von Remote-Servern und die Automatisierung von Warnmeldungen. Es ist eine Mischung aus einfachen manuellen Prüfungen und fortgeschrittener Automatisierung, die für viele alltägliche Szenarien ausreicht. Beachten Sie jedoch die Umgebung: Einige Befehle benötigen Administratorrechte, insbesondere auf Servern oder Remote-Systemen. PowerShell-Skripte können zwar manchmal unerwartete Probleme bereiten, sind aber deutlich leistungsfähiger als das Herumklicken in der Datenträgerverwaltung in der Hoffnung auf das Beste.
Zusammenfassung
- Verwenden Sie
Get-CimInstanceoderGet-WmiObjectum Laufwerksinformationen zu überprüfen. - Richten Sie Skripte ein, die Pop-ups oder E-Mails versenden, wenn der Platz knapp ist.
- Automatisieren Sie mit dem Aufgabenplaner oder führen Sie Remote-Prüfungen mit.durch
Invoke-Command. - Für die Überwachung großer Flächen sollten Sie spezialisierte Tools wie Zabbix oder Nagios in Betracht ziehen.
Abschließende Zusammenfassung
Hoffentlich bietet dies einen guten Ausgangspunkt für die Überwachung des Festplattenspeichers, ohne dabei den Überblick zu verlieren. Es sind einige Anpassungen nötig, aber wenn man es richtig macht, kann man sich später viel Ärger ersparen. Ich drücke die Daumen, dass dies jemandem ein paar Stunden Arbeit erspart oder sogar einen Festplattenausfall verhindert!