DiskPart vs. PowerShell: Welches Tool für welche Aufgabe?

DiskPart vs. PowerShell

DiskPart vs PowerShell ist eine Frage, die mir in den vergangenen Jahren fast wöchentlich in Kundenprojekten begegnet – meistens dann, wenn ein altes DiskPart-Skript plötzlich remote auf 40 Servern laufen soll und schlicht nicht funktioniert. Beide Tools verwalten Festplatten, Partitionen und Volumes unter Windows, aber sie stammen aus vollkommen unterschiedlichen Epochen der Windows-Administration und lösen unterschiedliche Probleme.

DiskPart gibt es seit Windows XP – ein textbasierter Interpreter, der Befehle einzeln abarbeitet und dabei denkbar simpel bleibt. PowerShell brachte mit dem Storage-Modul ab Windows 8 und Windows Server 2012 eine objektorientierte Alternative, die sich in bestehende Skripte, Pipelines und Automatisierungs-Frameworks einbetten lässt. Genau diese Vorgeschichte entscheidet meistens auch schon über die Antwort auf „welches Tool für welche Aufgabe“.

DiskPart vs. PowerShell

DiskPart und PowerShell im direkten Vergleich

DiskPart ist ein eigenständiger Kommandozeilen-Interpreter für die Datenträgerverwaltung, PowerShell ist ein vollständiges Skript- und Automatisierungs-Framework mit einem eigenen Storage-Modul. Der Unterschied liegt weniger in den Funktionen selbst als in der Art, wie beide Tools diese Funktionen bereitstellen.

KriteriumDiskPartPowerShell (Storage-Modul)
Verfügbar seitWindows XP (2001)Windows 8 / Server 2012
AusgabeformatReiner TextStrukturierte Objekte
Remote-VerwaltungNur über Umwege (PsExec, RDP)Nativ über Invoke-Command / CIM-Sessions
SkriptmodusTextdatei mit /s-Parameter.ps1-Skripte, Funktionen, Module
FehlerbehandlungKaum vorhandentry/catch, $ErrorActionPreference
Pipeline-FähigkeitNeinJa, Objekte lassen sich weiterreichen
Verfügbar in WinPEImmer vorhandenNur mit WinPE-PowerShell-Add-on
LernkurveNiedrigMittel bis hoch

Rund 166 Cmdlets stellt allein das PowerShell-Storage-Modul unter Windows 10/11 zur Verfügung – DiskPart kommt dagegen mit etwas mehr als 30 Kommandos aus. Das ist kein Zufall: DiskPart wurde für einen einzigen Rechner und einen einzigen Admin am Bildschirm entworfen, PowerShell für Skripte, die auf hunderten Systemen gleichzeitig laufen sollen.

Technisch gesehen sprechen beide Werkzeuge im Hintergrund mit derselben Schicht: dem Virtual Disk Service (VDS) von Windows. DiskPart übersetzt dabei jeden getippten Befehl in einen VDS-Aufruf und gibt das Ergebnis als Textblock zurück. PowerShell nutzt für dieselbe Aufgabe die CIM-Infrastruktur (Common Information Model) und liefert vollständige .NET-Objekte zurück, deren Eigenschaften sich einzeln auslesen, filtern und weiterverarbeiten lassen. Genau dieser Objektbezug erklärt, warum Get-Disk | Where-Object {$_.Size -gt 500GB} in einer Zeile funktioniert, während man mit DiskPart jeden Datenträger manuell durchklicken müsste.

Sicherheitsaspekte und Berechtigungen

Beide Tools verlangen für schreibende Operationen erhöhte Rechte. DiskPart prüft dabei nicht, welcher Befehl gerade eingegeben wird – ein clean auf dem falschen Datenträger lässt sich nicht rückgängig machen und wird ohne Rückfrage ausgeführt. PowerShell kennt zusätzlich das Konzept der -WhatIf-Parameter bei vielen Cmdlets: Clear-Disk -Number 2 -RemoveData -WhatIf zeigt an, was passieren würde, ohne tatsächlich etwas zu löschen. Diesen Sicherheitsmechanismus gibt es in DiskPart schlicht nicht.

In Windows-Server-Umgebungen kommt ein weiterer Punkt dazu: PowerShell-Remoting läuft standardmäßig über WinRM auf Port 5985 (HTTP) beziehungsweise 5986 (HTTPS) und lässt sich per Gruppenrichtlinie zentral absichern. DiskPart kennt kein eigenes Remoting-Protokoll – jede Fernausführung läuft zwangsläufig über ein anderes Werkzeug wie RDP oder PsExec, das dann separat abgesichert werden muss.

Wann DiskPart die bessere Wahl ist

DiskPart bleibt in bestimmten Situationen unschlagbar – nicht weil es moderner wäre, sondern weil es garantiert vorhanden ist und ohne Umwege funktioniert.

  • WinPE- und Recovery-Umgebungen: DiskPart ist Bestandteil jedes WinPE-Images. PowerShell braucht dort das separate WinPE-PowerShell-Add-on, das nicht jedes Boot-Medium mitbringt.
  • Schnelle Einzelaktionen am lokalen Rechner: Ein USB-Stick soll formatiert werden – diskpart, select disk, clean, format fs=fat32 quick ist in zehn Sekunden getippt.
  • Bestehende Legacy-Skripte: Wer bereits über Jahre gewachsene DiskPart-Skripte im Einsatz hat, die zuverlässig laufen, muss diese nicht zwingend migrieren.
  • Ältere Windows-Versionen und Embedded-Systeme: Auf Windows 7 oder älteren Embedded-Builds ist das Storage-Modul schlicht nicht verfügbar.

Wann PowerShell die bessere Wahl ist

Sobald mehr als ein Rechner betroffen ist oder ein Vorgang wiederholt werden muss, zieht PowerShell an DiskPart vorbei – und zwar deutlich.

  • Remote-Verwaltung mehrerer Server: Invoke-Command -ComputerName Server01,Server02 -ScriptBlock { Get-Disk } fragt beliebig viele Systeme in einem Rutsch ab.
  • Automatisierung und CI/CD: Storage-Cmdlets lassen sich in Ansible, Azure DevOps oder geplante Aufgaben einbetten – DiskPart-Textausgaben müsste man dafür erst mühsam parsen.
  • Objektbasierte Filterung: Get-Disk | Where-Object {$_.OperationalStatus -eq 'Offline'} filtert Datenträger nach echten Objekteigenschaften statt nach Textmustern.
  • Fehlerbehandlung mit Konsequenzen: Ein try/catch-Block kann einen fehlgeschlagenen Formatierungsversuch abfangen, bevor er den ganzen Skriptlauf stoppt.

⚠️ Achtung: Clear-Disk -Number 2 -RemoveData löscht wie diskpart clean sämtliche Partitionsdaten unwiderruflich. Prüfen Sie die Datenträgernummer immer zuerst mit Get-Disk, bevor Sie einen destruktiven Befehl ausführen – und legen Sie vorher ein Backup an.

Die wichtigsten Befehle im Vergleich: DiskPart-Kommando vs. PowerShell-Cmdlet

Die folgende Tabelle zeigt zu jedem gängigen DiskPart-Befehl das passende PowerShell-Cmdlet. Genau diese Zuordnung fehlt in den meisten englischsprachigen Blogbeiträgen zum Thema – dort werden einzelne Cmdlets erklärt, aber selten als vollständige 1:1-Übersetzung eines Skripts dargestellt.

AufgabeDiskPart-BefehlPowerShell-Cmdlet
Datenträger auflistenlist diskGet-Disk
Volumes auflistenlist volumeGet-Volume
Partitionen auflistenlist partitionGet-Partition
Datenträger auswählenselect disk 2-DiskNumber 2 (als Parameter)
Datenträger bereinigencleanClear-Disk -Number 2 -RemoveData
Partition erstellencreate partition primaryNew-Partition -DiskNumber 2 -UseMaximumSize
Formatierenformat fs=ntfs quickFormat-Volume -FileSystem NTFS -Confirm:$false
Laufwerksbuchstabe zuweisenassign letter=ESet-Partition -NewDriveLetter E
Partition vergrößernextend size=5000Resize-Partition -Size 5GB
Datenträgerdetailsdetail diskGet-PhysicalDisk
In GPT konvertierenconvert gptInitialize-Disk -PartitionStyle GPT

Ein Detail, das in der Praxis oft übersehen wird: Get-Partition liefert im Gegensatz zu list partition exakte, ungerundete Byte-Werte statt gerundeter Anzeigewerte. Bei der Prüfung der 4K-Ausrichtung von SSDs habe ich das bereits ausführlich beschrieben – DiskPart rundet den Offset-Wert mitunter, PowerShell nicht.

Kann PowerShell wirklich alles ersetzen, was DiskPart kann?

Nicht ganz. Das Storage-Modul deckt die überwiegende Mehrheit der DiskPart-Funktionen ab, aber einige Randfälle bleiben eine Domäne von DiskPart. Dynamische Datenträger älterer Bauart, bestimmte attributes disk-Flags und manche Automatisierungsschritte in OEM-Imaging-Prozessen laufen nach wie vor zuverlässiger über den klassischen Interpreter.

In der PowerShell-Community wird das offen so eingeräumt: Ein früherer Einwand auf einer Microsoft-Konferenz lautete, DiskPart habe kein Äquivalent in PowerShell – das stimmt laut Fachautoren so nicht mehr, das Storage-Modul deckt heute den größten Teil der Funktionalität ab, aber eben nicht hundert Prozent. Für die alltägliche Partitionsverwaltung auf Windows 10/11-Clients und aktuellen Servern spielt diese Lücke kaum eine Rolle.

DiskPart-Skript in PowerShell migrieren – Schritt für Schritt

Wer ein bestehendes DiskPart-Skript remote-fähig machen will, muss nicht bei null anfangen. Vier Schritte reichen für die meisten Standardfälle.

  1. Skript analysieren: Öffnen Sie die vorhandene .txt-Skriptdatei und notieren Sie jeden verwendeten DiskPart-Befehl in der Reihenfolge, in der er ausgeführt wird.
  2. Befehle übersetzen: Ersetzen Sie jeden Befehl anhand der Mapping-Tabelle oben durch das passende Cmdlet. Achten Sie darauf, dass PowerShell Objekte statt Textzeilen weiterreicht – das select disk aus DiskPart wird meist zu einem -DiskNumber-Parameter am jeweiligen Cmdlet.
  3. Fehlerbehandlung ergänzen: Fügen Sie try { } catch { } um kritische Schritte wie Formatierung oder Bereinigung ein, damit ein Fehler auf einem Rechner nicht den gesamten Skriptlauf über viele Systeme abbricht.
  4. Remote testen: Führen Sie das fertige Skript zunächst mit Invoke-Command -ComputerName TestServer -FilePath .\migration.ps1 gegen einen einzelnen Testserver aus, bevor Sie es auf die gesamte Flotte ausrollen.

Bis hierhin haben Sie bereits das komplette Grundgerüst für ein remote-fähiges Storage-Skript – der aufwendigste Teil, das Befehls-Mapping, liegt hinter Ihnen.

Vorher Nachher Ansicht eines DiskPart Skripts und der migrierten PowerShell Version

Fehlerbehandlung an einem echten Beispiel

Ein häufiger Praxisfall: Ein Skript soll auf zehn Servern jeweils eine neue Partition formatieren, aber auf einem der Server ist der Datenträger bereits belegt. Mit DiskPart bricht das Skript an dieser Stelle einfach ab oder gibt eine Textfehlermeldung aus, die niemand automatisiert auswertet. In PowerShell lässt sich derselbe Fall sauber abfangen:

foreach ($server in $serverListe) { try { Invoke-Command -ComputerName $server -ScriptBlock { Get-Disk -Number 1 | Initialize-Disk -PartitionStyle GPT -ErrorAction Stop New-Partition -DiskNumber 1 -UseMaximumSize | Format-Volume -FileSystem NTFS -Confirm:$false } Write-Output "$server erfolgreich formatiert" } catch { Write-Warning "$server fehlgeschlagen: $($_.Exception.Message)" } }

Fällt ein einzelner Server aus dem Rahmen, läuft das Skript trotzdem für die restlichen neun Server weiter und protokolliert den Fehler statt einfach abzubrechen. Genau diese Kombination aus try/catch und Schleife über mehrere Zielsysteme ist der Punkt, an dem DiskPart konzeptionell an seine Grenzen stößt – es wurde nie für solche Szenarien entworfen.

Automatisierung im Praxistest

Bei einem Kunden mit 24 Außenstellen-PCs, die alle eine identische Partitionsstruktur für ein Backup-Volume brauchten, habe ich beide Ansätze direkt gegeneinander getestet. Per Remote Desktop und manuellem DiskPart-Aufruf war ich pro Rechner rund vier bis fünf Minuten beschäftigt – inklusive Verbindungsaufbau und Eingabe. Mit einem PowerShell-Skript über Invoke-Command und eine Liste von Computernamen lief derselbe Vorgang auf allen 24 Systemen parallel in unter drei Minuten insgesamt durch.

Das ist kein Nischenvorteil. Sobald mehr als drei oder vier Systeme betroffen sind, kippt die Rechnung praktisch immer zugunsten von PowerShell – nicht weil DiskPart langsamer wäre, sondern weil es für Einzelplatz-Bedienung gebaut wurde und keine native Mehrfach-Ausführung kennt.

Protokollierung und Nachvollziehbarkeit

Für Audits und Change-Dokumentation ist entscheidend, was im Nachhinein noch nachvollziehbar ist. DiskPart lässt sich zwar mit dem Parameter /s scriptdatei.txt > log.txt in eine Log-Datei umleiten, mehr als die reine Textausgabe steckt darin aber nicht – keine Zeitstempel, keine strukturierten Felder. PowerShell-Skripte lassen sich dagegen problemlos mit Start-Transcript vollständig protokollieren, inklusive Zeitstempel, und die Ergebnisse jedes Cmdlets als CSV oder JSON exportieren: Get-Disk | Export-Csv -Path disks.csv -NoTypeInformation. Für Kunden mit Compliance-Anforderungen mache ich das inzwischen standardmäßig so, weil sich ein CSV-Export in fünf Minuten zu einem Bericht zusammenfassen lässt – bei DiskPart-Textausgaben bleibt nur Copy-Paste in Handarbeit.

Grenzen und Stolpersteine beider Tools

DiskPart kennt keine Variablen, keine Bedingungen und keine Schleifen – jedes Skript ist eine starre Abfolge von Befehlen ohne jede Logik. Ein Tippfehler in der Datenträgernummer kann dadurch schnell auf dem falschen Laufwerk landen, ohne dass DiskPart vorher nachfragt.

PowerShell wiederum braucht auf älteren oder stark abgespeckten Systemen erst das Storage-Modul – ohne dieses Modul (etwa in minimalen WinPE-Boot-Images) laufen die hier gezeigten Cmdlets schlicht nicht. Zusätzlich verlangen viele Storage-Cmdlets eine Sitzung mit erhöhten Rechten, genau wie DiskPart auch. Wer PowerShell nicht als Administrator startet, bekommt bei Clear-Disk oder New-Partition lediglich eine Zugriffsverweigerung.

Was hat sich 2026 geändert?

DiskPart selbst hat sich seit Jahren kaum verändert – die Befehlsliste ist praktisch identisch zu der aus Windows 10. Auf der PowerShell-Seite ist dagegen Bewegung drin: Das Storage-Modul wird mit jedem Windows-Server-Release um weitere Cmdlets ergänzt, aktuell etwa für Storage Spaces Direct und ReFS-Volumes.

Wer heute ein neues Automatisierungsskript aufsetzt, sollte grundsätzlich PowerShell 7 statt der älteren Windows PowerShell 5.1 verwenden – die plattformübergreifende Version bringt bessere Fehlermeldungen und läuft auch auf Windows-Server-Core-Installationen ohne grafische Oberfläche zuverlässiger.

Für WinPE-Umgebungen bleibt DiskPart weiterhin gesetzt: Auch aktuelle Windows-11-Installationsmedien greifen bei einer manuellen Partitionierung während der Setup-Phase intern auf DiskPart-Funktionen zurück, nicht auf PowerShell-Cmdlets.

Entscheidungshilfe: DiskPart oder PowerShell für Ihre Aufgabe

SituationEmpfehlung
Einzelner PC, einmalige AktionDiskPart
WinPE / Recovery-UmgebungDiskPart
Mehrere Server gleichzeitigPowerShell
Geplante, wiederkehrende WartungPowerShell
Integration in bestehende AutomatisierungPowerShell
Windows 7 oder ältere Embedded-SystemeDiskPart
Auswertung/Reporting über viele DatenträgerPowerShell

Häufig gestellte Fragen: DiskPart vs. PowerShell

Ist PowerShell besser als DiskPart?

PowerShell ist bei Automatisierung, Remote-Verwaltung und wiederkehrenden Aufgaben klar im Vorteil. Für schnelle Einzelaktionen an einem lokalen Rechner ist DiskPart oft praktischer, weil es ohne zusätzliches Modul sofort verfügbar ist.

Kann PowerShell alles, was DiskPart kann?

Fast alles. Das Storage-Modul deckt die meisten DiskPart-Funktionen ab, einige Randfälle bei dynamischen Datenträgern und OEM-Imaging-Prozessen laufen aber weiterhin zuverlässiger über DiskPart.

Funktioniert DiskPart auch remote?

Nur über Umwege wie Remote Desktop, PsExec oder ein manuell auf dem Zielsystem gestartetes Skript. Eine native Remote-Ausführung wie bei PowerShell mit Invoke-Command bietet DiskPart nicht.

Ist DiskPart veraltet?

Nein, DiskPart wird von Microsoft weiterhin gepflegt und ist Bestandteil aktueller Windows- und Windows-Server-Versionen. Es bleibt vor allem in WinPE-Umgebungen und für einfache lokale Aufgaben relevant.

Welches Tool eignet sich für die Verwaltung vieler Server?

PowerShell mit dem Storage-Modul und Invoke-Command, da sich Befehle parallel auf beliebig vielen Zielsystemen ausführen lassen, während DiskPart pro Rechner einzeln bedient werden muss.

Fazit

Nach über zwei Jahrzehnten mit beiden Tools ist meine Faustregel simpel geworden: Ein Rechner und eine schnelle Aktion – DiskPart. Mehrere Rechner, ein wiederkehrender Prozess oder eine Automatisierung – PowerShell. Die beiden schließen sich nicht aus, sondern ergänzen sich: In vielen meiner eigenen Skripte ruft PowerShell im Hintergrund sogar diskpart.exe für einzelne Randfälle auf, für die es noch kein sauberes Cmdlet gibt. Schauen Sie sich bei Bedarf auch meinen Beitrag zum Unterschied zwischen DiskPart und der grafischen Datenträgerverwaltung an – zusammen ergeben die drei Werkzeuge ein vollständiges Bild der Windows-Datenträgerverwaltung.

Zuletzt aktualisiert: Juli 2026 | Getestet auf: Windows 11 25H2 und Windows Server 2022, Juli 2026 | Autor: Vangelis | 25+ Jahre IT-Erfahrung | Betreiber von diskpart.de

Keine Produkte gefunden.

Vorheriger Artikel

exFAT vs. NTFS vs. FAT32: Welches Dateisystem wofür?