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ń.
W pierwszej części Serii zobaczyliśmy cmdlet, który wyglądał mniej więcej tak:
Aktualizacja-Pomoc
Polecenia cmdlet PowerShell mają składnię czasownik-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.
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, tak łatwa jak usługa Get-Service. Jak myślicie, jak byśmy to zrobili dostać lista uruchomionych procesy - Zgadza się, 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. 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
Jak widać 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, zanim ten przedrostek został dodany do cmdletów, więc nigdy ich nie zaimplementował i nigdy nie będzie.
Inną cechą programu PowerShell jest możliwość posiadania wielu sposobów uruchamiania tego samego polecenia - aliasów, jeśli zechcesz. 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ć listę katalogów za pomocą:
Get-ChildItem
Używany do korzystania z wiersza polecenia? Nie martw się, oni cię okryli.
Masz środowisko Linux? Tam też cię osłaniają.
Kiedy tworzysz scenariusz przez kilka lat, masz tendencję do leniwych i zaczynasz często 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 -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 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.
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 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 komputera
Jeśli przez przypadek nazwy parametrów będą zbyt niejednoznaczne, pojawi się błąd.
W końcu polecenia, które znasz i kochasz, będą nadal działać w PowerShell.
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 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.