10Aug
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.