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.
AnzeigeGet-Prozess
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.
AnzeigeHaben 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:
AnzeigeGet-Service -Na 'Apple Mobile Device' -Com localhost
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- & rsaquo; Verwenden Sie die Registerkartenvervollständigung, um Befehle auf jedem Betriebssystem schneller einzugeben
- & rsaquo; Geek School: Lernen, wie man Objekte in PowerShell verwendet
- & rsaquo; Geek School: Lernen von PowerShell-Variablen, Eingabe und Ausgabe
- & rsaquo; Geek School: Arbeiten mit Sammlungen in PowerShell
- & rsaquo; Geek School: Formatieren, Filtern und Vergleichen in PowerShell lernen
- & rsaquo; Geek School: Erfahren Sie, wie Sie PowerShell erweitern
- & rsaquo; Geek School: Erfahren Sie, wie Sie Jobs in PowerShell verwenden
- › 5 Websites, die jeder Linux-Benutzer mit einem Lesezeichen versehen sollte
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