Summe von HDD und SSD im System - gerne testen

klampf

Lt. Commander
Registriert
Aug. 2012
Beiträge
1.134
Ich (und ChatGPT) haben ein kleines PowerShell Skript erzeugt, das einfach nur alle HDD und SSD im System listet und aufaddiert, wieviel GB HDD und wieviel SSD man hat.

Beispiel für die Ausgabe:
Code:
==== Laufwerksübersicht ====


Laufwerk                     Typ Größe (GB)
--------                     --- ----------
Seagate Portable             HDD    4657,50
Samsung SSD 990 PRO 2TB      SSD    1863,00


==== Zusammenfassung ====


Typ Anzahl Gesamt_GB
--- ------ ---------
HDD      1  4657,50
SSD      1  1863,00


Gesamtkapazität aller Laufwerke: 6520,50 GB

Das Skript dazu:
PowerShell:
# Laufwerksübersicht.ps1
# Zeigt alle physischen Laufwerke mit Typ (SSD/HDD) und Summenübersicht an

Write-Host "`n==== Laufwerksübersicht ====`n" -ForegroundColor Cyan

# Laufwerke holen
$disks = Get-PhysicalDisk | Select FriendlyName, MediaType, Size

# "Unspecified" als HDD interpretieren
$disks | ForEach-Object {
    if ($_.MediaType -eq 'Unspecified') { $_.MediaType = 'HDD' }
}

# Übersicht anzeigen
$disks | Sort-Object MediaType | Select `
    @{Name='Laufwerk';Expression={$_.FriendlyName}},
    @{Name='Typ';Expression={$_.MediaType}},
    @{Name='Größe (GB)';Expression={[math]::Round($_.Size / 1GB, 1)}} |
    Format-Table -AutoSize

# Summen berechnen
$summary = $disks | Group-Object MediaType | ForEach-Object {
    [PSCustomObject]@{
        Typ = $_.Name
        Anzahl = $_.Count
        Gesamt_GB = [math]::Round(($_.Group | Measure-Object -Property Size -Sum).Sum / 1GB, 1)
    }
}

# Gesamtsumme berechnen
$totalGB = [math]::Round(($disks | Measure-Object -Property Size -Sum).Sum / 1GB, 1)

Write-Host "`n==== Zusammenfassung ====`n" -ForegroundColor Yellow
$summary | Format-Table -AutoSize
Write-Host "`nGesamtkapazität aller Laufwerke: $totalGB GB`n" -ForegroundColor Green

In meinem System sind SSDs "SSD" und HDDs kommen als "Unspecified" deshalb macht das Skript die zu HDDs.
Könnt ihr gerne mal mit einem Texteditor eurer Wahl abspeichern und in einer PowerShell aufrufen / starten.
Stellt ihr das Encoding im Editor auf "UTF-8 BOM" stimmen die Umlaute auch in der PowerShell 5 und 7 ;)

Ich wollte diese Info schon immer mal so einfach haben, habe aber nie eine SW genau dafür gefunden.
 
  • Gefällt mir
Reaktionen: Triple5soul
Nichts gegen das Skript, aber einmal von Hand addieren wäre vermutlich schneller gewesen?
 
  • Gefällt mir
Reaktionen: Luftgucker
klampf schrieb:
In meinem System sind SSDs "SSD" und HDDs kommen als "Unspecified" deshalb macht das Skript die zu HDDs.
Get-PhysicalDisk sollte bzw. muss HDDs und SSDs zuverlässig erkennen können, da sonst z.B. RAID über StorrageSpaces mit SSD-Cache nicht funktioniert.
Hast du AHCI aktiv, Chipset Treiber aktuell und vor allem Hotplug im BIOS aus?
 
  • Gefällt mir
Reaktionen: Looniversity
@Sykehouse Ohne das berühmte "Ich will nur mal kurz..." wäre GitHub wahrscheinlich fast leer und längst abgeschaltet :D

Klar, wäre bestimmt schneller gegangen. Aber so kann OP das wiederholt automagisch laufen lassen und, falls das ein Ziel war, Powershell lernen :) Sein Motto "einfach machen" auch sehr gut zum Buch "Learn Powershell in a month of lunches" <33
 
  • Gefällt mir
Reaktionen: klampf, Banned und aragorn92
@Sykehouse Ja, aber so ist es doch immer und tatsächlich ist das praktisch komplett von ChatGPT erstellt. Ich kann das Ergebns lesen und verstehe auch was es macht, musste aber keine API googlen bzw. PowerShell befehle. Also es ging sehr schnell.

@Ja_Ge Also, ja alles so wie Du sagst eingestellt, aber alle HDD, die gerade dran sind, sind nur USB.
Könnte das der Grund sein?
Die SSD an USB kommen als SSD.
Ich werde nachher nochmal eine an Sata stecken und gucken, ob die auch mit rein genommen wird. Sollte eigentlich. Mal gucken, ob die HDD ist.
 
Gerade getestet.
Eine HDD die intern an SATA hängt, kommt auch als HDD (sogar wenn im BIOS auf hotplug gestellt).
Und das Skript zählt die auch richtig mit.
 
Zurück
Oben