Geek School: Cmdlets in PowerShell verwenden lernen



Wenn Sie ipconfig oder ping über die Eingabeaufforderung verwendet haben, sind Sie auf halbem Weg zum PowerShell-Ninja. Also komm vorbei und schließe dich uns an, wenn wir Cmdlets in dieser Installation von Geek School entdecken.

Schauen Sie sich unbedingt unsere an erster Artikel zur Einführung von PowerShell , und bleiben Sie die ganze Woche über für den Rest unserer Serie dran.





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.

Die Kenntnis der legalen Verben und das Merken der Singular-Substantiv-Regel helfen wirklich beim Erraten von Cmdlet-Namen. Angenommen, Sie möchten werden eine Liste von Dienstleistungen und deren Status – richtig, so einfach wie Get-Service. Wie denkst du, würden wir? werden eine liste von rennen Prozesse – das ist richtig, Get-Process wird es tun.



Get-Prozess

Anzeige

Dies macht es wirklich einfach, mit jeder Technologie zu arbeiten. Wenn Sie beispielsweise die Exchange-Cmdlets geladen haben, können wir mithilfe von:

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.

Hinweis: Dieser Screenshot wurde auf einer Server 2012-Box aufgenommen, da Sie dort die meisten technologiespezifischen Module finden.

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.

Aliasse

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.

Anzeige

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

Wenn Sie seit ein paar Jahren Skripte schreiben, werden Sie tendenziell 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 Aliasse für ein Cmdlet abzurufen:

Get-ChildItem –Definition Get-ChildItem

Wenn Sie einen anderen Hintergrund haben, können Sie Ihre eigenen Aliasse 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. Du kannst das umgehen, indem du Hinzufügen ihrer Definition zu Ihrem Profilskript.

Abschneiden von Parametern

Windows PowerShell ermöglicht Ihnen auch das Abschneiden von Parameternamen bis zu dem Punkt, an dem sie mehrdeutig werden, dh 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

Anzeige

Wenn Sie die Parameternamen zufällig zu mehrdeutig machen, erhalten Sie eine Fehlermeldung.

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.

WEITER LESEN Profilfoto von Taylor Gibb Taylor Gibb
Taylor Gibb ist ein professioneller Softwareentwickler mit fast einem Jahrzehnt Erfahrung. Er war zwei Jahre lang als Microsoft Regional Director in Südafrika tätig und hat mehrere Microsoft MVP (Most Valued Professional) Auszeichnungen erhalten. Derzeit arbeitet er im Bereich Forschung und Entwicklung bei Derivatco International.
Vollständige Biografie lesen

Interessante Artikel