Windows CMD vs. PowerShell: Was ist der Unterschied und welches sollten Sie verwenden?

CMD und PowerShell sind zwar miteinander verwandt, aber nicht identisch. Sie wurden für unterschiedliche Zwecke entwickelt und verfügen über unterschiedliche Funktionen. Auf den ersten Blick sehen sie fast gleich aus. In beiden können Sie Befehle eingeben. Beide können viele Systemaufgaben ausführen. Aus diesem Grund glauben viele unerfahrene Benutzer, es handele sich um dasselbe Tool mit unterschiedlichen Namen.
Inhaltsverzeichnis
Sie sehen zwar ähnlich aus, sind aber für ganz unterschiedliche Aufgaben konzipiert. Wenn Sie Windows nutzen, sind Ihnen wahrscheinlich schon zwei Befehlszeilentools begegnet.
Das eine ist die Eingabeaufforderung, auch CMD genannt.
Das andere ist PowerShell.
In diesem Tutorial erfahren Sie, was CMD und PowerShell sind, wie sie sich unterscheiden und wann Sie welches Programm verwenden sollten.
Was ist die Windows-CMD?
CMD, oder Eingabeaufforderung, ist die traditionelle Befehlszeilenschnittstelle unter Windows.
Sie ist seit vielen Jahren Teil von Windows. Sie ermöglicht es Ihnen, mit dem Betriebssystem zu interagieren, indem Sie Textbefehle eingeben, anstatt auf Schaltflächen zu klicken.
Viele grundlegende Windows-Aufgaben lassen sich mit CMD erledigen.
Zum Beispiel können Sie:
- Dateien und Ordner anzeigen
- Verzeichnisse erstellen oder löschen
- Dateien kopieren oder verschieben
- Ihre Netzwerkeinstellungen überprüfen
- Batch-Skripte ausführen
Ein einfaches Beispiel ist die Auflistung der Dateien im aktuellen Ordner.
dir
Um in ein anderes Verzeichnis zu wechseln, können Sie folgenden Befehl verwenden:
cd Dokumente
CMD ist einfach und ressourcenschonend, was es zu einem guten Einstieg für Anfänger macht.
Was ist PowerShell?
PowerShell ist eine moderne Befehlszeilen-Shell und Skriptsprache, die von Microsoft entwickelt wurde. Sie kann alles, was CMD kann, bietet aber darüber hinaus viele erweiterte Funktionen.
PowerShell ist für die Automatisierung, die Systemadministration und die Verwaltung von Windows-Umgebungen konzipiert. Anstatt nur mit Text zu arbeiten, arbeitet PowerShell mit Objekten.
Dies ist einer der größten Unterschiede zwischen den beiden.
Da PowerShell mit Objekten arbeitet, kann es vollständige Informationen von einem Befehl zum nächsten weitergeben, anstatt nur einfachen Text.
Um beispielsweise Dateien im aktuellen Ordner aufzulisten, können Sie Folgendes verwenden:
Get-ChildItem
Oder einfach:
ls
PowerShell unterstützt viele Kurzbefehle, sodass sich Nutzer, die von Linux oder CMD kommen, oft wohler fühlen.
CMD und PowerShell sehen ähnlich aus
Wenn Sie CMD oder PowerShell öffnen, zeigen beide eine Eingabeaufforderung an, in die Sie Befehle eingeben. Für einen unerfahrenen Benutzer sehen sie fast identisch aus.
Beispielsweise können beide das Verzeichnis wechseln.
CMD:
cd C:\Users
PowerShell:
cd C:\Users
Da viele grundlegende Befehle in beiden Tools funktionieren, glauben viele, es gäbe keinen Unterschied.
Tatsächlich verfügt PowerShell jedoch hinter den Kulissen über zahlreiche zusätzliche Funktionen.
Der größte Unterschied
CMD arbeitet hauptsächlich mit Text.
PowerShell arbeitet mit Objekten.
Das mag zunächst verwirrend klingen, daher schauen wir uns ein einfaches Beispiel an. Angenommen, Sie möchten alle laufenden Prozesse finden, die viel Arbeitsspeicher beanspruchen.
In CMD arbeiten Sie normalerweise mit Textausgaben und filtern diesen Text.
In PowerShell wird jeder laufende Prozess als Objekt behandelt, das über Eigenschaften wie die folgenden verfügt:
- Prozessname
- Prozess-ID
- CPU-Auslastung
- Arbeitsspeicherauslastung
Dies erleichtert das Suchen, Sortieren und Filtern erheblich.
Beispiel:
Get-Process
Dieser Befehl gibt Prozessobjekte anstelle von reinem Text zurück.
Unterstützung für Skripte
CMD verwendet Batch-Skripte.
Batch-Dateien haben in der Regel die Erweiterung:
.bat
oder
.cmd
Beispiel:
@echo offecho Hello Worldpause
PowerShell verwendet PowerShell-Skripte.
Diese Dateien haben die Erweiterung:
.ps1
Beispiel:
Write-Host "Hallo Welt"
PowerShell-Skripte sind wesentlich leistungsfähiger und werden von Systemadministratoren und DevOps-Ingenieuren weit verbreitet eingesetzt.
Systemadministration
CMD kann viele administrative Aufgaben ausführen. PowerShell wurde jedoch speziell entwickelt, um die Systemadministration zu vereinfachen.
Mit PowerShell können Sie:
- Dienste verwalten
- Benutzer verwalten
- Windows-Einstellungen konfigurieren
- mit Active Directory arbeiten
- Cloud-Ressourcen verwalten
- sich wiederholende Aufgaben automatisieren
Aus diesem Grund nutzen viele IT-Fachleute PowerShell täglich.
Kann PowerShell CMD-Befehle ausführen?
Ja.
PowerShell kann viele herkömmliche CMD-Befehle ausführen.
Zum Beispiel:
ipconfig
ping google.com
mkdir TestOrdner
Diese Befehle funktionieren in PowerShell, obwohl sie ursprünglich aus CMD stammen. Dies hilft Benutzern beim Umstieg von CMD auf PowerShell, ohne alles neu lernen zu müssen.
Kann CMD PowerShell-Befehle ausführen?
Nicht direkt.
CMD kann PowerShell-Befehle von sich aus nicht verstehen.
Beispielsweise funktioniert Folgendes in CMD nicht:
Get-Process
CMD kann jedoch PowerShell starten und diese auffordern, einen Befehl auszuführen.
Beispiel:
powershell Get-Process
In diesem Fall startet CMD lediglich PowerShell.
CMD vs. PowerShell
Häufige Missverständnisse:
"PowerShell hat CMD ersetzt."
Nicht ganz.
CMD ist nach wie vor in Windows enthalten und eignet sich weiterhin gut für viele einfache Aufgaben.
"CMD ist mittlerweile nutzlos."
Das stimmt nicht.
Viele Administratoren nutzen CMD nach wie vor für schnelle Befehle, zur Fehlerbehebung und für ältere Skripte.
"PowerShell ist nur etwas für Experten."
Nein.
Sie können mit einfachen Befehlen beginnen und nach und nach fortgeschrittenere Funktionen erlernen. Viele alltägliche Aufgaben lassen sich in PowerShell genauso einfach erledigen wie in CMD.
Das Erlernen einiger grundlegender CMD-Befehle kann hilfreich sein, aber Sie können direkt mit PowerShell beginnen, wenn Ihr Ziel die Systemadministration oder DevOps ist.