PowerShell Cmdlets, Parameter und Aliase: um diese Begriffe geht es in folgenden Artikel.
Die PowerShell war für die Administration schon immer ein sehr wichtiges Werkzeug. Doch heute nehmen die Virtualisierungs-, Cloud- und Multicloud-Technologien, “software defined datacenter” haben im professionellen IT-Umfeld die Überhand. Da ist die PowerShell als eine Automationssprache gefragter denn je. Nicht zu vergessen, dass die PowerShell auch auf Linux und MacOS läuft.
Und natürlich sind die vor nicht all zu langer Zeit eingeführten Verbesserungen ganz nett: Strg+C, Strg+V können endlich mal auch in der Konsole benutzt werden; farbige Gestaltung der Konsole, das Einstellen von Transparenzen ist ebenfalls möglich.
PowerShell – Cmdlets
Die “Cmdlets” sind die nichts anderes als PowerShell-Befehle. Ausgesprochen wird es übrigens mit “Commandlets”. Neben den Basis-Befehlen, die jede PowerShell Installation mit sich bringt, gibt es zahlreiche PowerShell Erweiterungen. Diese Erweiterung bieten wiederum eine ganze Menge spezialisierter Cmdlets an, zum Beispiel für:
- Exchange Server
- SQL Server
- Azure
- SharePoint
- und vieles mehr und zwar in unterschiedlichsten Versionen…
Die Syntax eines Cmdlets ist in der PowerShell sehr konsequent: es besteht aus einen Verb und einem Nomen. Das Verb bestimmt, was gemacht werden sollte, zum Beispiel: “Set” oder “Get”. Das Nomen ist demnach der Bereich auf das sich das Verb bezieht: sprich womit etwas gemacht werden sollte. Das wären beispielsweise: “ComputerInfo”, “Service”, “Date” und so weiter.
Beispiel:
Get-ComputerInfo
Dieses Cmdlet gibt uns die Informationen über den Computer und zwar ziemlich detailliert.
Wenn man sich nicht sicher ist, welches PowerShell Cmdlet man benutzen sollte, schafft der Befehl “Get-Command” oft Abhilfe. Mehr zum den Strategien, um richtige Befehle zu finden gibt es in diesem Beitrag: PowerShell Befehle finden
Praktischer Tipp
Powershell Parameter
Wenn wir jedoch nur bestimmte Eigenschaften “Properties” sehen wollen, können wir die sogenannten “Parameter” nutzen:
Get-ComputerInfo -Property "*Processor*"
Dieser, doch schon recht ordentlich, spezifizierter Befehl zeigt uns nur eine Eigenschaft: den Prozessor:
Das ist auch der Hauptsinn der Parameter: mit einem Parameter passen wir die Cmdlets an unsere Bedürfnisse an. Die Powershell Cmdlets sind auf einen bestimmen Bereich spezialisiert. Dabei gehen sie sehr tief und/oder liefern oft eine (sehr) große Menge an Informationen. Um die Tiefe beziehungsweise die Vollständigkeit, mit der die Commandlets arbeiten, setzen wir die Parameter ein. Und davon gibt es ebenfalls einige. Die PowerShell hilft und dabei mit der Autovervollständigung.
PowerShell Cmdlets und Argumente
Wenn wir die PowerShell Hilfe aufrufen, sehen wir die Angaben zu der Syntax:
Get-Service -?
Hinter der eckigen Klammer “[-Name]”, die für Parameter steht, sehen wir den “<string[]>”. Hier können den Parameter mit weiteren Argumenten versehen. Das gibt uns wiederum die Möglichkeit das PowerShell Cmdlet noch genauer zu spezifizieren. Hierzu können wir die Argumente mit einem Komma getrennt hintereinander aufzählen:
Get-Service -Name Dhcp,dnscache
Folgendes sollte man jedoch beachten: fehlt die eckige Klammer [] hinter dem “string”, so ist nur ein Argument zulässig. Ein Beispiel hierfür wäre das Cmdlet “Get-EventLog”:
Get-EventLog -?
Unter Angabe der Parameter und Argumente lassen sich die PowerShell Cmdlets schon wesentlich einfacher aber auch effizienter handhaben. Hoffentlich diente dieser kurze Beitrag einer Übersicht über die Handhabe der Cmdlets. Weiterführende Informationen sind auf der Docs-Seite von Microsoft zu finden: https://docs.microsoft.com/de-de/powershell/scripting/developer/cmdlet/cmdlet-overview?view=powershell-7.1