Was sind die Vorteile von Powershell gegenüber Cygwin / Unix-Shell?

9

Der offensichtliche Unterschied, den ich kenne, ist die Möglichkeit, eine Schnittstelle zu bestimmten MS-Produkten wie Exchange herzustellen. Aber was sind die Vorteile von Powershell, wenn man solche Produkte nicht verabreichen muss? Was sind die Gründe, um Powershell überhaupt zu lernen (vorausgesetzt, ich spreche fließend mit Bash und Cygwin)?

Moshe
quelle

Antworten:

18

Der offensichtlichste Vorteil: Solange keine Textausgabe (oder ein Legacy-Befehl) in einer Pipeline enthalten ist, verschieben Sie keinen Text durch die Pipes, sondern Instanzen von .NET Framework-Objekten mit all ihren Eigenschaften und Methoden.

Dies ermöglicht eine ausdrucksstärkere und weniger mehrdeutige Pipeline-Behandlung, die auch von den Einstellungen für Gebietsschema und Sprache völlig unbeeinflusst bleibt (denken Sie beispielsweise an Datums- oder Zahlenformate und wie Sie sie normalerweise als Zeichenfolgen behandeln müssten).

Dies bedeutet auch, dass Sie in einer Skriptumgebung Zugriff auf viele der .NET Framework-Funktionen haben.

Tomalak
quelle
6

Ohne auf Werturteile über das Paradigma einzugehen, sind die Hauptvorteile von PowerShell die .NET-Integration und die Incumbency - ab Windows 2008 Server wird es standardmäßig gebündelt und in Service Packs auf 2003 und 2003 R2 geladen.

Um fair zu sein, gibt es mehrere andere Möglichkeiten für die Skripterstellung - zum Beispiel Perl und Python. Python bietet Ihnen auch die Möglichkeit, IronPython zu verwenden, wenn Sie eine native .NET-Integration wünschen. Tatsächlich wird IronPython zufriedenstellend installiert, indem es einfach in einem Verzeichnis abgelegt wird. Sie können es trivial in einer Anwendung bündeln, ohne dass ein separater Installationsschritt erforderlich ist.

Powershells Hauptstärke ist ein zweischneidiges Schwert. Während das Streamen von .net-Objekten sehr nützlich ist und seine Vorteile hat, werden viel mehr Annahmen über die Fähigkeit der Komponenten getroffen, mit dem Framework gut zu spielen. Damit dies wirklich funktioniert, müssen Sie die Dinge mit Cmdlets umschließen. Während die Textausgabe etwas niedriger ist und eine Analyse erfordert, werden die Komponenten weniger belastet, um mit dem Framework gut zu spielen.

Mit der Zeit würde ich erwarten, dass viel mehr Windows-Ökosysteme (sowohl MS- als auch Drittanbieter-Komponenten) mit Cmdlet-Wrappern geliefert werden, damit sie mit Powershell funktionieren. In diesem Fall wird der Fall für Powershell viel stärker.

In der Vergangenheit war eine der wichtigsten traditionellen Schwächen von Windows aus administrativer Sicht die schlechte Unterstützung von Skripten. MS hat dies vor einigen Jahren erkannt und nach einigen lahmen Versuchen (z. B. WSH) ist Powershell die bislang glaubwürdigste Anstrengung von MS, diesen Mangel zu beheben.

ConcernedOfTunbridgeWells
quelle
2

Ich denke, der größte Gewinn für Powershell ist, dass Sie alles auf alles übertragen können, ohne Text analysieren und / oder grok sed und awk. Stellen Sie sich Powershell ohne automatisches Sed und Awk zum Verknüpfen von Befehlen in einer Pipeline vor, ohne diese fiesen Objekte in die Equasion zu bringen .

x0n
quelle
2

Vorteile: -

  1. Automatisierung von Aufgaben: - Aufgaben wie das Hinzufügen eines Benutzers zu 1000 Maschinen sind manuell mühsam. Mit Hilfe von Powershell müssen Sie jedoch nur ein einfaches Skript schreiben. Wenn dieses Skript ausgeführt wird, werden automatisch alle Clients konfiguriert. So sparen Sie Zeit, indem Sie die Schritte automatisch wiederholen. Windows PowerShell-Skripts für Sicherung und Wiederherstellung können entwickelt und geplant werden (mit Windows Task Scheduler), während die Zentraladministration für einmalige Sicherungen und Wiederherstellungen verwendet wird. Windows PowerShell bietet den Vorteil, dass SQL-Snapshots anstelle der Produktionsdatenbank ausgeführt werden. Einer der Parameter des Windows PowerShell-Befehls bewirkt, dass ein SQL-Snapshot generiert wird. Anschließend führt Windows PowerShell die Aktion für den Snapshot anstelle der Produktionsdatenbank aus. Dadurch werden die Ressourcenauswirkungen des Sicherungsvorgangs auf die Produktionsumgebung verringert. Mit Windows PowerShell können SharePoint-Administratoren die Optionen für die Sicherung oder Wiederherstellung genauer steuern.

  2. Verbesserung der Remoting-Funktionen: - Die Bedeutung ist zweifach: Erstens können die Windows 7-Desktops mithilfe von PowerShell-Befehlen mit dem Server kommunizieren. Infolgedessen können Techniker mit Windows 7-Laptops ihre Server remote konfigurieren, indem sie PowerShell-Skripts ausführen. Zweitens können in PowerShell geschriebene Client-Anmeldeskripts, die sich auf dem Server befinden, unter Windows 7 einfacher ausgeführt werden. Auch mit Powershell können wir die Remote-Maschinen einfach steuern, wichtige Aufgaben ausführen und diese Änderungen problemlos in großem Umfang anwenden. Beim Remoting werden die Netzwerkressourcen verwendet. Wenn wir also mit Powershell arbeiten, verwenden wir nicht die GUI. Daher wird die für eine bestimmte Aufgabe erforderliche Bandbreite reduziert und das Problem der Netzwerküberlastung gelöst.

  3. Konsistenz: - Wenn Sie ein festgelegtes Verfahren zum Ausführen einer Aufgabe haben, stellen Sie mit Windows Powershell sicher, dass Sie keinen Schritt verpassen, automatisieren Sie so viel wie möglich und lassen Sie sich von Powershell auffordern, was nicht automatisiert werden kann.

  4. .NET-Unterstützung: - Powershell unterstützt das .NET-Framework. Daher können alle Systemfunktionen leicht zu den Powershell-Skripten hinzugefügt werden und sind somit eine Hilfe für den Programmierer bei der Entwicklung der Skripte. Somit ist die Automatisierung der Aufgaben von VDI viel einfacher, einfacher und effizienter.

  5. Weniger manuelle Arbeit: - Der Administrator kann jetzt die Einstellungen von virtuellen Maschinen remote erstellen, löschen oder ändern, indem er nur die Skripte schreibt. Er muss nicht zum einzelnen PC gehen und die Arbeit erledigen. Auch geschriebene Skripte sind auf allen Computern akzeptabel. Der Administrator muss sie also nicht immer wieder neu schreiben.

  6. Wiederverwendbarkeit: - Die Skripte, die einmal geschrieben wurden, um eine bestimmte Aufgabe auszuführen, können für spätere Zwecke gespeichert und auch mit anderen Skripten kombiniert werden, um andere Aufgaben auszuführen. So können sich wiederholende Aufgaben viel einfacher ausgeführt werden, indem nur die Skripte ausgeführt werden. Dies spart den Administratoren Zeit und Geld bei der Konfiguration der Computer.

  7. Pipelining-Unterstützung: - Der größte Gewinn für Powershell ist, dass Sie alles an alles weiterleiten können, ohne Text analysieren zu müssen. Sie können die Ausgabe eines Befehls als Eingabe für den neuen Satz bereitstellen und so die komplexen Aufgaben lösen.


quelle
0

Es ist nicht garantiert, dass Cygwin für jede Windows-Version verfügbar ist. Zuletzt habe ich überprüft, ob es auf 64-Bit-Computern fraglich ist. Powershell wird zur Standardbefehlsshell für Windows und bietet "nativen" Zugriff auf alle Ressourcen auf einem Windows-Computer.

Eric Z Bart
quelle
Ich benutze Cygwin unter 64 Bit Vista, funktioniert perfekt.
Lajos