Wenn Sie ipconfig oder ping über die Eingabeaufforderung verwendet haben, sind Sie auf halbem Weg ein PowerShell-Ninja zu werden. Also komm und schließe dich uns an, wenn wir Cmdlets in dieser Installation von Geek School entdecken.
Lesen Sie unbedingt unseren ersten Artikel zur Einführung von PowerShell, und bleiben Sie die ganze Woche über für den Rest unserer Serie auf dem Laufenden.
Die Anatomie eines Cmdlets
Im ersten Teil der Serie sahen wir ein Cmdlet, das ungefähr so aussah:
Update-Hilfe
PowerShell-Cmdlets haben eine Verb-Noun-Syntax, die oben zu sehen ist. Beachten Sie, dass das Nomen immer im Singular steht, auch wenn das Cmdlet möglicherweise mehr als ein Ergebnis zurückgibt. Um eine Liste zulässiger Verben in PowerShell anzuzeigen, können Sie das Cmdlet Get-Verb verwenden.

Wenn Sie die zulässigen Verben kennen und sich an die Singular-Substantiv-Regel erinnern, können Sie Cmdlet-Namen erraten. Angenommen, Sie möchten you erhalten eine Liste von Dienstleistungen und deren Status – richtig, so einfach wie Get-Service. Wie denkst du würden wir? erhalten eine laufliste Prozesse – das ist richtig, Get-Process wird es tun.
Get-Prozess

Dies macht es wirklich einfach, mit jeder Technologie zu arbeiten. Wenn Sie beispielsweise die Exchange-Cmdlets geladen haben, können wir mit folgendem Befehl problemlos eine Liste der Postfächer auf dem Server abrufen:
Get-Mailbox
Es gibt jedoch eine Ausnahme. Abgesehen von Exchange benötigen alle anderen technologiespezifischen Befehle ein Präfix. Wenn wir beispielsweise die Benutzer abrufen möchten, die derzeit über Remotedesktop angemeldet sind, geben wir Folgendes ein:
Get-RDUserSession
Was im Screenshot unten zu sehen ist.

Vor einiger Zeit habe ich einen Artikel von Don Jones, dem Godfather of PowerShell, gelesen, in dem er erklärte, dass Exchange ausgeliefert wurde, bevor dieses Präfix zu Cmdlets hinzugefügt wurde, sodass es diese nie implementiert hat und auch nie implementiert wird.
Aliase
Eine weitere Funktion, die PowerShell bietet, ist die Möglichkeit, denselben Befehl auf mehrere Arten auszuführen – Aliase, wenn Sie so wollen. Das Tolle an ihnen ist, dass sie viele Befehle enthalten, die Sie möglicherweise in der Eingabeaufforderung verwendet haben, sowie einige Linux-Aliasnamen. In PowerShell können wir beispielsweise eine Verzeichnisliste abrufen, indem wir Folgendes verwenden:
Get-ChildItem

Gewohnt, die Eingabeaufforderung zu verwenden? Keine Sorge, sie haben Sie abgedeckt.

Haben Sie einen Linux-Hintergrund? Sie haben Sie auch dort abgedeckt.

Wenn Sie seit ein paar Jahren Skripte schreiben, werden Sie faul und verwenden häufig Aliase, aber das hilft Neulingen nicht, die unseren Code lesen werden. Um zu sehen, welcher Befehl ein Alias unter der Haube ausgeführt wird, können Sie Folgendes verwenden:
Get-Alias –Name ls

Wenn Sie andererseits der Meinung sind, dass es an der Zeit ist, Ihr Spiel zu verbessern, können Sie den Definitionsparameter verwenden, um alle Aliase für ein Cmdlet abzurufen:
Get-ChildItem –Definition Get-ChildItem

Wenn Sie einen anderen Hintergrund haben, können Sie Ihre eigenen Aliase wie folgt hinzufügen:
Neuer-Alias –Name icanhazfilez –Wert Get-ChildItem
Natürlich müssen Sie «icanhazfilez» durch den Namen Ihres neuen Alias und Get-ChildItem durch das Cmdlet ersetzen, das unter der Haube ausgeführt werden soll.

Beachten Sie, dass beim Schließen der Shell alle von Ihnen definierten Aliase verloren gehen. Sie können dies umgehen, indem Sie deren Definition zu Ihrem Profilskript hinzufügen.
Abschneiden von Parametern
Windows PowerShell ermöglicht Ihnen auch das Abschneiden von Parameternamen bis zu dem Punkt, an dem sie mehrdeutig werden, d. h. bis zu dem Punkt, an dem PowerShell nicht mehr herausfinden kann, über welchen Parameter Sie sprechen. Beispielsweise:
Get-Service -Name ‘Apple Mobile Device’ -ComputerName localhost

Ist das gleiche wie:
Get-Service -Na ‘Apple Mobile Device’ -Com localhost

Wenn Sie die Parameternamen zufällig zu mehrdeutig machen, erhalten Sie einen Fehler.
Alte Befehle
Schließlich funktionieren die Befehle, die Sie kennen und lieben, weiterhin in PowerShell.
ping www.google.com

Denken Sie daran, dass Legacy-Anwendungen wie Ping eine Zeichenfolge ausgeben und es oft eine bessere Möglichkeit gibt, dasselbe mit einem PowerShell-Cmdlet zu tun.

Anstatt eine lange Textkette auszugeben, bleibt uns jetzt ein Objekt, das wir uns in der morgigen Ausgabe der Geek School ansehen werden.