Laufwerksbelegung über PowerShell auslesen

Das Skript durchläuft die Organisationseinheit in einer AD Umgebung mit dem Namen  Server. Ermittelt alle Laufwerke eines Systems und prüft die Speicherbelegung auf größer 25%. Die Daten werden farblich ausgegeben.

# Ldap Server auslesen
$servers = Get-ADComputer -LDAPFilter "(operatingsystem=*Server*)"# Server durchlaufen
foreach ($server in $servers){
    Write-Host "$server.name" -ForegroundColor Green
 
    # Erreichbarkeit des Systems prüfen
    if ((Test-Connection -ComputerName $server.Name -Quiet)){
        # Laufwerke auslesen
        $laufwerke = Get-Wmiobject Win32_logicaldisk -computer $server.Name | Select-Object deviceid,size,freespace,DriveType
        foreach ($laufwerk in $laufwerke)
        {
        # lokale Laufwerke
            if($laufwerk.DriveType -eq 3){
                # Freie Speicher in %
                $free = [Math]::Floor([decimal]($laufwerk.Freespace) / ($laufwerk.Size / 100))
                # Freie Speicher in GB
                $freeSpace = [Math]::Floor([decimal]($laufwerk.freespace/1GB))
                # Kennzeichnung bei Speicher unter 25 %
                if($free -le 25 ){
                    Write-Host $laufwerk.DeviceID " $free% frei ($FreeSpace GB)" -ForegroundColor Red
                }
                else{
                    Write-Host $laufwerk.DeviceID " $free% frei ($FreeSpace GB)" -ForegroundColor Yellow
                }
            }
 
        }
    }
    else{
        Write-Host "Keine Verbindung" -ForegroundColor Red
    }
Write-Host "---------------------"
}
Ausgabebeispiel:
CN=DC01,OU=Domain Controllers,DC=…,DC=…,DC=de.name
C:  72% frei (43 GB)
———————–
CN=CA01,OU=Server,DC=…,DC=…,DC=de.name
C:  71% frei (42 GB)
———————–
CN=SC03,OU=Server,DC=…,DC=…,DC=de.name
Keine Verbindung
———————–
CN=DB03,OU=Server,DC=…,DC=…,DC=de.name
C:  39% frei (23 GB)
F:  84% frei (84 GB)
G:  87% frei (69 GB)
———————–
CN=BUILD02,OU=RDP,OU=Server,DC=…,DC=…,DC=de.name
C:  17% frei (11 GB)
D:  33% frei (26 GB)
———————–

Schreibe einen Kommentar