Nauka korzystania ze skrótów Cmdlets 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.
Koniecznie zapoznaj się z naszym pierwszym artykułem przedstawiającym PowerShell i pozostań z nami przez resztę naszej serii przez cały tydzień.
The Anatomy of Cmdlet
W pierwszej części Serii widzieliśmy cmdlet, który wyglądał mniej więcej tak:
Aktualizacja-Pomoc
Polecenia cmdlet PowerShell mają składnię czasownik-rzeczownik, co widać powyżej. Należy 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.
Znajomość czasowników prawnych i zapamiętanie pojedynczej reguły rzeczownika naprawdę pomaga odgadnąć nazwy cmdletów. Załóżmy na przykład, że chcesz dostać Lista usługi i ich status - to prawda, jest tak łatwy jak Get-Service. Jak myślicie, jak byśmy to zrobili dostać lista uruchomionych procesy - to prawda, Get-Process załatwi sprawę.
Get-Process
Dzięki temu praca z dowolną technologią jest naprawdę łatwa. Na przykład, jeśli załadowano polecenia cmdlet Exchange, możemy łatwo uzyskać listę skrzynek pocztowych na serwerze, używając:
Pobierz skrzynkę pocztową
Istnieje jednak wyjątek. Odwróć 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 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 poleceń cmdlet, więc nigdy ich nie zaimplementował i nigdy nie będzie.
Aliasy
Inną 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 mogłeś użyć w wierszu polecenia, a także kilka aliasów Linuksa. Na przykład w PowerShell możemy uzyskać listę katalogów za pomocą:
Get-ChildItem
Używany do używania wiersza poleceń? Nie martw się, oni cię osłaniają.
Masz środowisko Linux? Tam też cię osłaniają.
Kiedy tworzysz scenariusz przez kilka 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 tła, możesz dodać własne aliasy, wykonując następujące czynności:
Nowa-Alias -Name icanhazfilez -Value Get-ChildItem
Oczywiście, będziesz musiał zastąpić "icanhazfilez" nazwą swojego nowego aliasu i Get-ChildItem z poleceniem cmdlet, które chcesz uruchomić 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.
Obcinanie parametrów
Windows PowerShell umożliwia także obcinanie nazw parametrów aż do momentu, w którym stają się niejednoznaczne, czyli aż do momentu, w którym PowerShell nie będzie w stanie określić, o którym parametrze chodzi. Na przykład:
Get-Service -Name "Urządzenie mobilne Apple" - nazwa_komputera localhost
Jest taki sam jak:
Get-Service -Na "Urządzenie mobilne Apple" - lokalny host
Jeśli przypadkiem nazwa parametrów będzie zbyt niejednoznaczna, pojawi się błąd.
Starsze polecenia
W końcu 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, a często jest lepszy sposób na robienie 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 Szkoły Geeków.