Windows PowerShell, CMD oder Bash: Was ist das beste Kommandozeilen-Werkzeug?
Linux- und Unix-Administratoren fühlen sich sicher auf der Windows PowerShell schnell zu Hause. Die alte CMD dürfte hingegen bald verschwinden.
Frage: Wie schneidet die neueste Version von PowerShell im Vergleich zu anderen Kommandozeilen-Werkzeugen wie Bash und CMD ab?
Jason Helmick: PowerShell mit CMD oder Bash zu vergleichen, ist in etwa das Gleiche, wie einen Ferrari Spider von 2013 ins Rennen gegen einen VW Käfer von 1969 zu schicken. Beide haben Reifen und ein Lenkrad, aber beim Ferrari ist alles besser – und in diesem Fall hat er noch ein paar interessante Zusatz-Funktionen.
Scherz beiseite: Die Entwickler von PowerShell lieben und schätzen die Fähigkeit, mit Linux/Unix-Shells (*nix) die Objekt-basierten Möglichkeiten von Windows zu nutzen. Deshalb ist PowerShell angelehnt an der Erfolg altbewährter *nix-Shells und hat deren besten Funktionen übernommen. Als Management-Plattform werden sich also alle IT-Profis darin zuhause fühlen, die Erfahrungen mit Linux- oder Unix-Systemen haben.
Wie wichtig dem PowerShell-Team bei Microsoft interaktives Management ist, zeigt sich an der Objekt-basierten Pipeline und den Tausenden an verfügbaren Befehlen (Cmdlets). PowerShell bietet IT-Profis Möglichkeiten für sofortige Problem-Lösungen in jedem Umfang, wie sie die Management-Tools der grafischen Benutzer-Oberfläche (GUI) von Windows schmerzlich vermissen lassen. Administratoren, die nur mit der Windows-GUI arbeiten, lernen den Umgang damit zwar schnell. Doch es lohnt sich sehr, darüber hinaus zu gehen. Denn mit Remote-PowerShell lassen sich von jedem Ort der Welt aus beliebig viele Systeme verwalten, einrichten, erfassen oder reparieren.
Diese Befehle zu automatisieren, erfordert nichts weiter, als sie in eine PowerShell-Scriptdatei zu kopieren – ähnlich wie bei den alten Batch-Dateien. Jeder Administrator kann wiederkehrende Aufgabe automatisieren, ohne dafür eine Programmier-Sprache lernen zu müssen. In den Händen eines geschickten Script-Schreibers allerdings kommen die Möglichkeiten von PowerShell richtig zur Geltung. Die Scripting-Sprache von PowerShell basiert auf C (eigentlich auf C#), doch erfahrene *nix-Profis werden auch Einflüsse von anderen Sprachen wie PHP erkennen. PowerShell-Scripts können komplizierte Aufgaben und echte Runbook-Automation mit Workflow ausführen.
Microsoft hat viel investiert, um PowerShell zu einem erstklassigen Management-Produkt zu machen und fügt immer neue Befehle zu seinen Enterprise-Produktlinien hinzu.
Beim Vergleich zwischen PowerShell und CMD erscheint die Ferrari-Käfer-Analogie am angemessensten. PowerShell übertrifft CMD in jeder Hinsicht mit vielen wichtigen Funktionen, von denen *nix-Profis viele schon seit Jahren haben. Dazu zählen:
- konsistente Struktur für die Befehle (Verb – Nomen)
- konsistente Syntax – Sie müssen nicht raten, ob Sie Gedanken- oder Schrägstrich oder ein Fragezeichen brauchen
- vollständig Objekt-basierte Pipeline
- einfaches Scripting (Automation) für alle Administratoren
- fortschrittliche Scripting-Möglichkeiten wie Runbook Automation
- die Möglichkeit, Scripts rasch zu Cmdlets für andere Administratoren zu entwickeln
- PowerShell-Remoting, mit dem Administratoren Scripts von überall, jederzeit und auf jeder beliebigen Zahl von Computern ausführen können.
Wenn Sie ein Linux- oder Unix-Profi sind, der Microsoft-Produkte und -Betriebssysteme verwalten muss, wird sich PowerShell für Sie anfühlen wie ein bequemes Paar Schuhe mit neuen Sohlen.
Wenn Sie ein Windows-Administrator sind, der bislang fast nur mit der GUI gearbeitet hat, dann bedeutet PowerShell zunächst einmal eine Herausforderung. Doch Sie können Sie meistern. Und das lohnt sich, denn sowohl Ihre künftigen Karriere-Chancen als auch Ihr Unternehmen werden davon profitieren.