Ist die Windows PowerShell genau so nützlich und Umfangreich wie die UNIX/LINUX Bash?

5 Antworten

Da man mit Powershell ohne Umwege auf beliebige Funktionen von .Net zugreifen kann dürfte Powershell sogar eine der mächtigsten Scriptsprachen überhaupt sein.

Hübsch ist Powershell garantiert nicht, wenn man sich an den Umgang damit gewöhnt hat ist das Piplining sogar eine prima Sache.

Ich war sehr lange mit Batch, VBScript, Javascript und HTA unterwegs. Powershell spielte Lange Zeit nur eine eher untergeordnete Rolle da es bis Windows 10 ein Schattendasein führte.

Erst mit Win 10 und der Option Powershell als Standardconsole zu verwenden rückt die Sprache mehr in den Mittelpunkt. Zudem ist Batch bei weitem nicht mehr in der lage alle Anforderungen eines Modernen Betriebssystems zu erfüllen

Inzwischen stelle ich massiv auf Powershell um... Lästige Restriktionen umschiffe ich elegant durch Powershell-Batch-Hybride...

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

Hallo

Ist die Windows PowerShell genau so nützlich und Umfangreich wie die UNIX/LINUX Bash?
  • Da ich keine Powershell benutze kann ich nur mutmaßen.
  • Weil nun aber die Möglichkeiten der Shell, egal ob unter Windows oder Linux, im Grunde nur davon abhängen wie viele Programme darauf laufen sind bzw. darüber Befehle entgegennehmen kann man dies niemals pauschal bestätigen oder verneinen.
  • Auf einem Windows-System wird sie schon einen hohen nutzen haben, vorausgesetzt man ist überhaupt bereit sich damit zu beschäftigen. Und durch Erweiterungen wie das Subsystem für Linux wird sie nicht weniger interessant.

Linuxhase

Woher ich das weiß:eigene Erfahrung – Ich benutze seit 2007 Linux und habe LPIC101 und LPIC102

Wer gut mit PowerShell umgehen kann, wird sie als nützlicher empfinden als die klassischen Unix Shells.

Frage nur: Wie zahlreich sind die Leute, die wirklich gut mit PowerShell umgehen können? Wie leicht fällt es Durchschnittsprogrammierern, die PowerShell bei Bedarf um selbst implementierte Kommandos zu erweitern? Wo finden sich hierfür gut verständliche, schnell aufzufindende Beschreibungen?


Erzesel  07.11.2019, 23:01

PS: Powershell ist nicht anders als jede andere Computersprache.

Man hat Befehle, Anweisugen/Entscheidungsbäume und Variablen.

Die Vergleichsoperatoren sind etwas gewöhnungsbedürftig, aber auch kein weltbewegendes Problem. Das umsteigen auf Powershell dürfte für einen halbwegs intelligenten Programmierer keine Schwierigkeit darstellen.

Durch die Aliases braucht man für die wichtigsten Befehle/Cmdlets nicht einmal umdenken. Man "sagt Powershel was man möchte und bekommt das Ergebnis in einer Form , welche sich ohne Verrenkungen mit dem nächsten cmtlet in der Pipeline weiterverarbeiten läst

1
Erzesel  07.11.2019, 22:30
Wie zahlreich sind die Leute, die wirklich gut mit PowerShell umgehen können?

Sehr wenige... das ist allerdings den Sicherheitsrestriktionen geschuldet. Powershell ist derart mächtig, das man es nicht unbedingt als nützlich für jedes Scriptkiddy machen wollte.

Damit vergraulte man allerdings auch die Leute, welche aus der Batchwelt kamen. es war einfach lästig in der Konsole per Batch ein Powershellscript aufzurufen um die Sichheitsanforderungen zu befriedigen. Wenn man erstmal in der Batchconsole ist, kann man auch gleich auf Powershell verzichten und in gewohnter Weise in Batch fortfahren.

1
Erzesel  07.11.2019, 22:18

https://www.windowspro.de/script/funktionen-powershell-parameter-datentypen-rueckgabewerte

Die Definition von eigenen Funktionen ist ebenso problemlos wie in c# oder Javascript.

Zudem kann man auch Funktionen in C# Manier definieren bzw damit auf native Funktionen der WindowsAPI zugreifen.

das Stichwort dafür ist PInvoke

Wo finden sich hierfür gut verständliche, schnell aufzufindende Beschreibungen?

https://ss64.com/ps/syntax.html

1

Die PowerShell ist durch die Integration des .NET-Frameworks sehr viel mächtiger als die Unix BASH. Du kannst mit PowerShell Skripten sogar eigene Programme mit GUI skripten.

Woher ich das weiß:Studium / Ausbildung

Ich nutze lieber die Linux Shells... bin aber auch damit aufgewachsen ;D