Was ist ein Cmdlet / Commandlet in PowerShell
Ein einfacher PowerShell Befehl wird Commandlet (Cmdlet) genannt.
Ein Cmdlet ist also ein Befehl vom Benutzer an das System, um einen bestimmten Zweck zu erfüllen. Es gibt schon sehr viele Befehle, allerdings kann man auch seine eigenen Commandlets erstellen.
Um zu wissen über was man spricht, benötigen die Windows PowerShell Kommandos auch einen speziellen Namen. Die Befehle in den .ps1-Dateien haben also den Namen cmdlet bekommen. Fällt dieses Wort in einer Konversation oder in einer Beschreibung, so weiß man, dass es sich um ein PowerShell-Command handelt. Diese werden auch Commandlet genannt.
Was ist ein Cmdlet?
Ein einzelner Befehl in Windows PowerShell wird Cmdlet genannt. Doch dieser Begriff ist lediglich eine Abkürzung eines anderen Wortes. Woher kommt die Abkürzung Cmdlet? Dies ist die Abkürzung von Commandlet. Doch wie wir weiter unter erklären, ist das längere Wort schon bald ausgestorben. Die Aussprache ist übrigens Command-Let.
Administratoren und Benutzern unter Windows Betriebssystemen ist es aber auch möglich eigene Cmdlet´s zu schreiben. In der Regel hat auch jedes solches eine PowerShell Hilfe-Datei, welche abgerufen werden kann. Diese Hilfe gibt jeweils ein Beispiel, aber auch eine Beschreibung zum Befehl und die korrekte Anwendung der Syntax.
Aufbau eines Commandlets
Ein klassisches Commandlet in PowerShell besteht aus einem Verb und einem Nomen. Optional können in der Regel Parameter übergeben werden.
Verb-Substantiv -Parameterliste
Die wohl bekanntesten Verben in PowerShell sind diese:
- Get-
- Set-
Doch Parameter werden nicht immer benötigt, nur wenn man seinen Befehl eingrenzen, beziehungsweise spezialisieren möchte. Der Aufbau eines PowerShell Befehls sieht dann meist folgendermaßen aus:
Verb-Substantiv -Parameter
Beispiel
Ein Beispiel für ein klassisches Cmdlet ist beispielsweise Get-Service
oder Get-Process
. Hier werden die installierten Dienste, beziehungsweise laufenden Prozesse ausgegeben.
Als Ausgabe erhält man alle relevanten Informationen, die das Commandlet ausgibt. In diesem Fall wurde der Parameter -IncludeUserName
angegeben.
Bekannte Cmdlets unter Windows PowerShell
Natürlich gibt es auch Kommandos, welche häufig benutzt werden. Wir haben für euch eine Liste erstellt, mit dem Namen und Funktion von häufig genutzten PowerShell-Commands. Jedes dieser Cmdlet ist unter allen PowerShell-Versionen verfügbar.
PowerShell Cmdlet | Beschreibung |
Get-Location | Gibt das aktuelle Verzeichnis aus |
Write-Host | Eine Ausgabe in der Konsole |
Copy-Item | Kopiert eine oder mehrere Dateien |
Out-Csv | Schreibt die Ausgabe in eine CSV-Datei |
Move-Item | Verschiebt eine Datei oder Ordner |
Rename-Item | Benennt die Datei um |
Get-Process | Listet alle laufenden Prozesse |
Get-ADUser | Listet Active Directory Benutzer |
Remove-Item | Löscht eine Datei |
Alle installierten Cmdlets erhält man mit dem Befehl Get-Command.
Cmdlet vs. Commandlet
Was ist der Unterschied zwischen einem Cmdlet und Commandlet? In PowerShell gibt es keinen Unterschied zwischen diesen beiden Begriffen. Cmdlet ist lediglich die Abkürzung. Dieses Wort ist kürzer und daher schneller zu schreiben und zu sprechen. Die Bedeutung ist allerdings die selbe.
Wie oben schon erwähnt, ist das Wort Cmdlet die Abkürzung von Commandlet. Doch zur einfacheren Ausdrucksweise wird oft nur Variante eins gewählt. Auch Suchbegriffe in Google werden oft als cmdlet abgekürzt um sich einige Buchstaben zu sparen. Microsoft spricht übrigens in deren Blogs und Foren auch meist nur noch von Cmdlets anstatt von Commandlets. Deswegen hat und wird sich auch in Zukunft die kürzere Schreibweise durchsetzen und die Abkürzung das eigentliche Wort ersetzen.
Ein Cmdlet kann nicht einzeln wie eine EXE-Datei ausgeführt werden, sondern nur in der PowerShell Console oder in einem PS-Script. Auch in der klassischen CMD funktionieren diese Commandlets nicht. Allerdings können CMD Befehle in PowerShell ausgeführt werden.