5 Cmdlets, aby rozpocząć pracę z PowerShell
PowerShell szybko staje się preferowanym językiem skryptowym i interfejsem CLI zaawansowanych użytkowników, jak również specjalistów IT. Warto zapoznać się z kilkoma poleceniami, aby zacząć, więc mamy 5 przydatnych cmdletów do nauki.
Get-Command
Get-Command jest jednym z najbardziej przydatnych cmdletów w całym PowerShellu, ponieważ pomoże ci opanować PowerShell, umożliwiając wyszukiwanie określonych cmdletów. Samo używanie Get-Command jest niezbyt użyteczne, ponieważ wypluwa każde polecenie PowerShell.
Ale z tego widać, że obiekty te, że wyjścia PowerShell mają zarówno właściwość Name, jak i ModuleName. Korzystając z tych informacji, możemy dokładnie przeanalizować nasze poszukiwania, wyszukując cmdlety zawierające określone terminy. Na przykład, jeśli chciałbym znaleźć wszystkie polecenia cmdlet zawierające słowo "IP", mógłbym to zrobić:
Pobierz polecenie -Nazwa * IP *
Jak widać nadal otrzymujemy sporo wyników, naszą następną opcją jest przeszukiwanie w ramach określonego modułu. W naszym przypadku wybiorę moduł NetTCPIP.
Pobierz-Polecenie -Moduł NetTCPIP -Nazwa * IP *
Wezwać pomoc
Po znalezieniu polecenia cmdlet, którego szukasz za pomocą polecenia Get-Command, będziesz chciał poznać składnię i sposób korzystania z tego konkretnego polecenia cmdlet. Tutaj pojawia się Get-Help, jeśli kiedykolwiek używałeś wiersza poleceń w Windowsie, prawdopodobnie zrobiłeś coś takiego:
ipconfig /?
Cóż, to nie działa w PowerShellu, ponieważ w PowerShellu zastosowano spację do oddzielenia polecenia od jego parametrów. Zamiast tego używamy Get-Help i przekazujemy nazwę cmdlet do Get-Help jako parametru.
Get-Help Get-Process
Get-Member
Get-Member pozwala nam uzyskać informacje o obiektach zwracanych przez cmdlety. Połów z get-member polega na tym, że opiera się na funkcji potoku PowerShell, aby to zademonstrować, będziemy mogli użyć polecenia cmdlet Get-Process.
Jak widać, wyniki PowerShell pokazują nam niektóre właściwości, które można zobaczyć na górze każdej kolumny. Pierwszy problem polega na tym, że chociaż są to właściwości, których możesz szukać przez większość czasu, jest ich jeszcze więcej. Drugi problem polega na tym, że nie pokazuje żadnych metod, które możemy wywołać na obiekcie. Aby zobaczyć metody i właściwości, możemy wyprowadzić nasze wyniki do Get-Member, na przykład:
Get-Process | Get-Member
Chociaż może to teraz nic nie oznaczać, prędzej czy później będziesz potrzebował używać Get-Member, a im szybciej nauczysz się go używać, tym lepiej. Jako przykład, używając informacji z wyjścia, możemy zrobić coś takiego:
Start-Process notepad.exe
NotepadProc = Get-Process -Name Notatnik
$ NotepadProc.WaitForExit ()
Uruchom proces calc.exe
Ten skrypt uruchomi notatnik, a następnie przydzieli wyjściowy "Notatnik procesu Get-Process-Notation" do zmiennej $ NotepadProc, następnie wywołujemy metodę WaitForExit na NotepadProc $, co powoduje zatrzymanie skryptu do momentu zamknięcia notatnika po zamknięciu notatnika następnie uruchomi się kalkulator.
$ _ (Bieżący obiekt Pipeline)
Chociaż nie jest to dokładnie cmdlet, jest to jedna z najczęściej używanych zmiennych specjalnych w PowerShell. Oficjalna nazwa dla $ _ jest "bieżącym obiektem rurociągu". Używa się go w blokach skryptów, filtrach, klauzuli procesu funkcji, obiekt-obiekt, foreach-obiekt i przełączniki. Jednak łatwiej jest wyjaśnić na przykładzie, który prowadzi nas do naszego następnego i ostatniego polecenia cmdlet, Where-Object.
Gdzie-obiekt
Gdzie-obiekt robi dokładnie to, co brzmi, wybiera obiekt na podstawie tego, czy spełnia określone kryteria. Spowoduje to połączenie $ _ i właściwości, które możemy zobaczyć za pomocą Get-Member. Aby to zademonstrować, poprowadzimy wyjście Get-Process do cmdletu Where-Object.
Get-Process | Where-Object $ _. Name -eq "iexplore"
Więc o co tutaj chodzi? Cóż, pierwszą rzeczą, którą robimy, jest uzyskanie listy procesów na naszym komputerze i przekazanie danych wyjściowych (przy użyciu znaku |) do naszego polecenia cmdlet Where-Object, które przyjmuje jako parametr blok skryptu. Blok skryptu (zdefiniowany przez nawiasy klamrowe) instruuje polecenia cmdlet Where-Object, aby wybierały tylko obiekty, których parametr nazwy jest równy "iexplore", a więc otrzymujemy tylko listę instancji IE, które są uruchomione. To wszystko, co do niego należy, baw się dobrze!