10Aug

Geek School: Nauka korzystania z poleceń cmdlet w PowerShell

Jeśli użyłeś ipconfig lub ping przez wiersz poleceń, jesteś w połowie drogi do zostania ninja PowerShell. Dołącz do nas, gdy odkryjemy cmdlety w tej instalacji Geek School.

Pamiętaj, aby zapoznać się z naszym pierwszym artykułem przedstawiającym PowerShell i pozostać z nami przez resztę naszej serii przez cały tydzień.

The Anatomy of a Cmdlet

W pierwszej części Serii widzieliśmy cmdlet, który wyglądał mniej więcej tak:

Update-Help

Polecenia cmdlet PowerShell mają składnię Verb-Rzeczownik, co widać powyżej. Ważne jest, aby zauważyć, że rzeczownik jest zawsze liczbą pojedynczą, nawet jeśli polecenie cmdlet może zwrócić więcej niż jeden wynik. Aby zobaczyć listę czasowników prawnych w PowerShell, możesz użyć cmdletu Get-Verb.

Znając czasowniki prawne i zapamiętując pojedynczą regułę rzeczownika, naprawdę pomaga odgadnąć nazwy cmdletów. Załóżmy na przykład, że chcesz uzyskać listę i ich status - to prawda, tak łatwa jak Get-Service. Jak myślisz, w jaki sposób otrzyma na liście uruchomionych przetwarzających - to prawda, Get-Process zrobi lewy.

Get-Process

Dzięki temu praca z dowolną technologią jest naprawdę łatwa. Jeśli na przykład załadowano polecenia cmdlet Exchange, możemy łatwo uzyskać listę skrzynek pocztowych na serwerze przy użyciu:

Get-Mailbox

Istnieje jednak wyjątek. Odłóż na bok, wszystkie inne polecenia związane z technologią będą wymagały prefiksu. Na przykład, jeśli chcemy uzyskać użytkowników, którzy są aktualnie zalogowani za pomocą Pulpitu zdalnego, wpiszemy:

Get-RDUserSession

. Można to zobaczyć na zrzucie ekranu poniżej.

Uwaga: Ten zrzut ekranu został zrobiony na pudełku Server 2012, ponieważ tam właśnie znajdziesz większość modułów specyficznych dla danej technologii.

Jakiś czas temu przeczytałem artykuł Dona Jonesa, Ojca Chrzestnego PowerShell, w którym wyjaśnił, że Exchange został wysłany przed dodaniem tego przedrostka do cmdletów, więc nigdy ich nie zaimplementował i nigdy nie będzie.

Aliasy

Kolejną cechą programu PowerShell jest możliwość posiadania wielu sposobów uruchamiania tego samego polecenia - aliasów, jeśli chcesz. Niesamowitą rzeczą było to, że zawierały one wiele poleceń, których mógłbyś użyć w wierszu polecenia, a także niektóre aliasy Linuksa. Na przykład w PowerShell możemy uzyskać listing katalogu przy użyciu:

Get-ChildItem

Używany do korzystania z wiersza poleceń?Nie martw się, oni cię okryli.

Masz środowisko Linux? Tam też cię osłaniają.

Kiedy tworzysz skrypt od kilku lat, masz tendencję do leniwych i zaczynasz używać aliasów, ale to nie pomaga początkującym, którzy będą czytać nasz kod. Aby zobaczyć, jakie polecenie działa alias pod maską, możesz użyć następującego:

Get-Alias ​​-Name ls

Z drugiej strony, jeśli uważasz, że nadszedł czas, aby podnieść swoją grę, możesz użyć parametru definicji, aby uzyskaćwszystkie aliasy dla polecenia cmdlet:

Get-ChildItem -Definition Get-ChildItem

Jeśli pochodzisz z innego środowiska, możesz dodać własne aliasy, wykonując następujące czynności:

Nowa-Alias ​​-Nazwa icanhazfilez -Value Get-ChildItem

Oczywiście,będziesz musiał zastąpić "icanhazfilez" nazwą swojego nowego aliasu i Get-ChildItem z poleceniem cmdlet, które ma działać pod maską.

Należy pamiętać, że tracisz wszystkie aliasy zdefiniowane podczas zamykania powłoki. Możesz obejść to, dodając swoją definicję do swojego skryptu profilu.

Parametry skracania

Windows PowerShell umożliwia również obcinanie nazw parametrów aż do momentu, w którym stają się niejednoznaczne, czyli aż do momentu, w którym program PowerShell nie będzie w stanie określić, o którym parametrze chodzi. Na przykład:

Get-Service -Name "Urządzenie mobilne Apple" -NazwaKomputera localhost

Jest to to samo, co:

Get-Service -Na "Urządzenie mobilne Apple" -Kom lokalny

Jeśli przez przypadek sprawisz, że nazwy parametrów będą zbyt niejednoznaczne,otrzyma błąd.

Legacy Commands

Wreszcie, polecenia, które znasz i kochasz, będą działały w PowerShellu.

ping www.google.com

Pamiętaj tylko, że starsze aplikacje, takie jak ping, wysyłają ciąg znaków i często istnieje lepszy sposób na zrobienie tego samego przy użyciu polecenia cmdlet PowerShell.

Zamiast wysyłać długi ciąg tekstu, mamy teraz obiekt, który przyjrzymy się w jutrzejszej edycji Geek School.