Komputery Okna Internet

Opis PowerShell. Co to jest PowerShell? Pierwsze kroki z PowerShellem

5 listopada 2014 o godzinie 20:07

Szybki start w PowerShell (część I)

  • Administracja systemu ,
  • PowerShell
  • Instruktaż

Tylko automatyzacja. Tylko PowerShell.

Przedmowa

Hobby i kiedy mam czas, prowadzę zajęcia ze studentami w UKIT (dawniej Moskiewska Państwowa Szkoła Technologii Informacyjnych). W tej chwili mam mało czasu, aby poświęcić się grupie studentów, ale wystarczy, aby przygotować post tutaj na Habré.

Pracuję jako administrator systemu w dużej firmie spoza branży IT, dysponującej dużymi zasobami IT. Według rodzaju działania wydaje się, że rozwiązuje dużą liczbę podobnych zadań w zakresie obsługi użytkowników.

Z językiem PowerShell zapoznałem się jakieś dwa lata temu, ale na dobre zająłem się nim dopiero rok później, nie zdając sobie w pierwszej chwili sprawy z jego ogromnych możliwości. W tym artykule skupię się przede wszystkim na tych, którzy chcą rozpocząć pracę z PowerShellem, ale jeszcze mu nie ufają lub nie wiedzą, w jaki sposób podejść do tego cudu.

Ostrzeżenie: PowerShell uzależnia.

Wstęp

Wikipedia mówi nam:
Windows PowerShell- rozszerzalne narzędzie do automatyzacji z Microsoftu, składający się z powłoki wiersza poleceń i towarzyszącego jej języka skryptowego.

Środowisko PowerShell może wyglądać jak wiersz poleceń:


PowerShell.exe

Lub jako aplikacja:


powershell_ise.exe

Powershell_ise.exe zwane zintegrowanym środowiskiem skryptowym - Windows PowerShell ISE. Umożliwia pracę z językiem w wygodnym środowisku z podświetlaniem składni, konstruktorem poleceń, automatycznym uzupełnianiem poleceń po naciśnięciu klawisza TAB i innymi udogodnieniami. Idealny do tworzenia i testowania skryptów.

Aby uruchomić środowisko PowerShell.exe Lub powershell_ise.exe Po prostu wpisz tę samą nazwę w linii wykonania.

Plik skryptu PowerShell ma rozszerzenie .ps1.

Skryptu nie można uruchomić za pomocą podwójnego LMB. Odbywa się to specjalnie, aby nie zaszkodzić systemowi przez przypadkowo uruchomiony skrypt.

Aby uruchomić, kliknij prawym przyciskiem myszy i wybierz „Uruchom za pomocą PowerShell”:

Oprócz tego, że istnieje ograniczenie w uruchamianiu skryptów LMB, domyślnie wykonywanie skryptów w systemie jest zabronione, ponownie z powodu opisanego powyżej - aby nie zaszkodzić systemowi. Aby sprawdzić aktualną politykę wykonania, uruchom komendę:

Get-ExecutionPolicy

Otrzymamy jedną z następujących wartości. Z dużym prawdopodobieństwem, jeśli był to pierwszy start, otrzymamy Ograniczony.

  • Ograniczony- Nie można uruchamiać skryptów;
  • Wszystko podpisane- Można uruchamiać tylko skrypty podpisane przez zaufanego wydawcę. Przed uruchomieniem skryptu zaufanego wydawcy zostaniesz poproszony o potwierdzenie;
  • Zdalnie podpisany- Zezwolono na uruchamianie stworzonych przez nas skryptów oraz pobranych skryptów podpisanych przez zaufanego wydawcę;
  • Nieograniczony- Brak ograniczeń, można uruchomić wszystkie skrypty.

Aby wykonać i przetestować, obniż politykę do Zdalnie podpisany uruchamiając polecenie:

Ustaw opcję ExecutionPolicy RemoteSigned

Zacznijmy

Polecenie cmdlet
  • Polecenia cmdlet to polecenia programu PowerShell zawierające różne funkcje;
  • Polecenia cmdlet mogą być tworzone przez system lub przez użytkownika;
  • Polecenia cmdlet są nazywane zgodnie z zasadą czasownik-rzeczownik, co ułatwia ich zapamiętanie;
  • Polecenia cmdlet generują wyniki w postaci obiektów lub kolekcji obiektów;
  • Polecenia cmdlet mogą zarówno odbierać dane do przetwarzania, jak i przesyłać je potokiem (więcej o potokach później);
  • W poleceniach cmdlet nie jest rozróżniana wielkość liter (można pisać get-process, Get-Process i GeT-pRoCeSs);
  • Nie ma potrzeby umieszczania „po poleceniach cmdlet ; ", z wyjątkiem sytuacji, gdy wykonujemy wiele poleceń cmdlet w jednym wierszu (Get-Process; Get-Services).

Na przykład, aby uzyskać bieżące procesy, uruchomimy polecenie:

I otrzymujemy wynik:

Spróbuj sam:

Get-Service #, aby uzyskać status usług działających na komputerach

Get-Content C:\Windows\System32\drivers\etc\hosts #, aby pobrać zawartość pliku. W tym przypadku plik hosts

Nie musisz znać na pamięć wszystkich poleceń cmdlet. Sprowadź pomoc uratuje sytuację.
Informacje o wszystkich dostępnych poleceniach cmdlet można uzyskać, uruchamiając następujące polecenie:

Polecenie cmdlet Get-Help -Category

Jeśli użyjemy PowerShell ISE, ułatwimy proces rozwoju.
Po prostu wpisz myślnik ” - " po wejściu do polecenia cmdlet i otrzymamy wszystkie możliwe opcje parametrów i ich typów:

Próbować:

Get-Service -Nazwa p*

Jeśli jednak zapomnimy, jakie właściwości ma to lub inne polecenie cmdlet, uruchomimy je Uzyskaj członkostwo:

Pobierz proces | Get-Member #Sign „|” zwany przenośnikiem. O nim poniżej.

Brak wystarczających informacji? Zapoznajmy się z pomocą dotyczącą parametru -Przykłady:

Uzyskaj pomoc Uzyskaj proces - przykłady

Dostajemy opis Pobierz proces, a nawet z przykładami użycia:

  • Polecenia cmdlet mogą mieć skrócone nazwy - aliasy. Na przykład zamiast Sprowadź pomoc można używać po prostu Pomoc. Aby uzyskać wszystkie skróty, uruchom Pobierz-Alias.

Próbować:

Notatnik Rozpocznij proces

Co jest podobne do pisania:

Uruchom notatnik

Zatrzymajmy teraz proces:

Zatrzymaj proces - Notatnik nazw

Spps - Notatnik nazw

Nieco wcześniej powiedzieliśmy, że nazwy poleceń cmdlet są zgodne z zasadą czasownik-rzeczownik. Wyjaśnię, że czasownik nie musi być Dostawać. Oprócz tego, co możemy otrzymać, możemy prosić Ustawić(pamiętaj, Set-ExecutionPolicy), uruchom Początek, zatrzymywać się Zatrzymywać się, wyjście Na zewnątrz, tworzyć Nowy i wiele innych. Nazwa polecenia cmdlet nie jest ograniczona do niczego, a kiedy tworzymy własną, możemy nadać jej dowolną nazwę.

Spróbujmy wypisać do pliku:

„Witam, Habro!” | Plik wyjściowy C:\test.txt i C:\test.txt

Nawiasem mówiąc, możesz napisać to tak:

„Witam, Habro!” > C:\test.txt i C:\test.txt

Wielu użytkowników wie o wierszu poleceń, ale bardzo niewielu słyszało o programie Windows PowerShell. W pewnym sensie PowerShell jest narzędziem, które ma na celu zastąpienie wiersza poleceń i zapewnienie potężniejszych możliwości zarządzania systemem operacyjnym Windows. W tym artykule postaramy się jasno wyjaśnić, czym jest to narzędzie, dlaczego jest tak potężne i kto najczęściej z niego korzysta.

Co to jest PowerShell?

Aby lepiej zrozumieć, musimy najpierw zrozumieć, czym jest powłoka. W informatyce powłoka to interfejs użytkownika zapewniający dostęp do różnych usług systemu operacyjnego. Powłoka może być oparta na wierszu poleceń lub może zawierać graficzny interfejs użytkownika (GUI).

Windows PowerShell to powłoka opracowana przez firmę Microsoft do celów automatyzacji zadań i zarządzania konfiguracją. Ta potężna powłoka jest oparta na platformie .NET i zawiera powłokę wiersza poleceń oraz język skryptowy.

Na standardowej powłoce wiersza poleceń może znajdować się również środowisko Windows PowerShell ISE. ISE pełni funkcję zintegrowanego środowiska skryptowego – graficznego interfejsu użytkownika, który umożliwia tworzenie różnych skryptów bez konieczności wpisywania wszystkich poleceń w wierszu poleceń.

Pierwsza wersja programu PowerShell została wydana w listopadzie 2006 roku dla systemów Windows XP, Windows Server 2003 i Windows Vista. Najnowsza to wersja 4.0, która została wydana w październiku 2013. Domyślnie jest dostarczana z systemami Windows 8.1 i Windows Server 2012 R2.

Co możesz zrobić za pomocą PowerShella?

Firma Microsoft opracowała program Windows PowerShell jako narzędzie pomagające zautomatyzować i szybko rozwiązać wiele żmudnych zadań administracyjnych. Możesz na przykład użyć programu PowerShell, aby wyświetlić wszystkie urządzenia USB zainstalowane na jednym lub większej liczbie komputerów w sieci lub skonfigurować czasochłonne zadanie, które będzie uruchamiane w tle podczas wykonywania innych prac. Możesz także identyfikować i kończyć procesy, które nie odpowiadają, lub filtrować określone informacje o komputerach w sieci i eksportować je w formacie HTML.

Możliwości PowerShell pozwalają uprościć i zautomatyzować czasochłonne i powtarzalne zadania poprzez tworzenie skryptów i łączenie wielu poleceń razem.

Jeśli jesteś administratorem sieci, PowerShell będzie bardzo przydatny podczas pracy z Active Directory. Biorąc pod uwagę, że narzędzie zawiera setki dostosowywalnych poleceń zwanych cmdletami, prawdopodobieństwo, że PowerShell pomoże Ci zwiększyć produktywność, jest bardzo wysokie.

Jak uruchomić PowerShell w systemie Windows 8.1?

Jeśli nie masz kafelka PowerShell na ekranie startowym lub skrótu na pulpicie, możesz go otworzyć za pomocą wyszukiwania - jest to jeden z najłatwiejszych sposobów. Naciśnij + Q, wpisz „powershell”, a następnie naciśnij Enter.

Możesz także otworzyć PowerShell z sekcji Aplikacje na ekranie startowym: Przejdź do ekranu startowego i przesuń kursor do lewego dolnego rogu, tuż pod ostatnim kafelkiem w pierwszej kolumnie. Kliknij ikonę ze strzałką skierowaną w dół. Następnie kliknij ikonę PowerShell w sekcji „Narzędzia”.

Aby otworzyć PowerShell za pomocą okna dialogowego Uruchom, naciśnij + R, wpisz „powershell” i naciśnij Enter.

Jak uruchomić PowerShell w systemie Windows 7?

W systemie Windows 7 możesz wyszukać narzędzie, wyszukując „powershell” w menu Start.

Możesz także otworzyć PowerShell poprzez menu Start w sekcji Akcesoria.

Oczywiście powyższe polecenie w oknie Uruchom działa również w systemie Windows 7.

Kto zwykle korzysta z PowerShell?

Bez wątpienia PowerShell jest wyborem wielu administratorów IT. I nie bez powodu, ponieważ narzędzie znacznie upraszcza operacje zarządzania i zmniejsza ilość pracy w dużych sieciach korporacyjnych.

Załóżmy, że zarządzasz dużą siecią zawierającą ponad pięćset serwerów i musisz wdrożyć nowe rozwiązanie bezpieczeństwa, które zależy od niektórych usług, które muszą działać na tych serwerach. Oczywiście możesz połączyć się z każdym serwerem i sprawdzić, czy wymagana usługa jest na nim zainstalowana i działa. Jednak w tym przypadku jest mało prawdopodobne, aby Twoje kierownictwo było usatysfakcjonowane, ponieważ wykonanie zadania będzie wymagało zbyt dużo czasu.

Dzięki PowerShellowi wykonasz tę pracę w ciągu kilku minut, gdyż całą operację można wykonać za pomocą jednego skryptu, który zbierze informacje o usługach działających na określonych serwerach i zapisze je w postaci pliku tekstowego np.:

PowerShell pozwala zrobić znacznie więcej, niż można opisać w jednym artykule, więc jeśli naprawdę jesteś zainteresowany, zdecydowanie zalecamy zakup i przeczytanie jednej z wielu książek omawiających możliwości tego narzędzia.

Miłego dnia!

W tym artykule przyjrzymy się takim technologiom firmy Microsoft jak Windows PowerShell, porozmawiamy o tym, czym jest PowerShell, czym są polecenia cmdlet i potok, jak pisać skrypty i moduły, a także poruszymy inne równie ważne i przydatne funkcje Windows PowerShell.

Co przyczyniło się do powstania Windows PowerShell?

Przed PowerShellem istniały ( i tu są) następujące narzędzia do automatyzacji i administrowania usługami: Linia poleceń Windows i Host skryptów Windows. Ale te technologie mają wady.

Linia poleceń systemu Windows ma także możliwość wykonywania niektórych zadań administracyjnych oraz możliwość zapisywania algorytmu działań, zapisywania go jako skryptu (pliku bat), przy czym można korzystać z określonych elementów programowania, np. używać zmiennych, konstrukcji warunkowych, a nawet coś w rodzaju cykli.

Większość oprogramowania ma interfejs konsolowy, tj. możemy sterować programem za pomocą wiersza poleceń, oszczędzając jednocześnie zasoby ze względu na brak kosztów obsługi interfejsu graficznego. Microsoft wydaje nawet edycje bez interfejsu graficznego dla serwerowego systemu operacyjnego Windows Server ( Server Core, Windows Server 2016 ma nawet Nano Server), ale to wszystko nie wystarczy, ponieważ możliwości wiersza poleceń są ograniczone, tj. Nie będziemy w stanie napisać skomplikowanej logiki automatyzującej coś, a nawet jeśli nam się to uda, będzie to wymagało czasu i wiedzy.

Wadą wiersza poleceń jest również to, że do pełnego zarządzania serwerem używamy różnych narzędzi konsolowych oprogramowania, dlatego używanie wiersza poleceń do administracji jest w rzeczywistości trudne, z punktu widzenia faktu, że wszystkie te narzędzia mają różne składnię, parametry, sposoby użycia oraz w celu wykonywania typowych zadań, tj. codziennie trzeba to wszystko mieć w pamięci, a żeby wykonać nietypowe zadania trzeba najpierw zapoznać się z pomocą lub dokumentacją.

Technologia Windows Script Host pozwala na wykonywanie wszystkich zadań administracyjnych z poziomu wiersza poleceń, w tym ich automatyzację poprzez pisanie skryptów WSH, jednak tutaj możemy już korzystać z pełnoprawnych języków programowania ( VBScript i JScript), tj. można wdrożyć złożoną logikę i algorytmy. Ponadto za pomocą WSH zarządzamy oprogramowaniem poprzez interfejs obiektowy, innymi słowy, Windows Script Host to znacznie więcej „ chłodnica» niż wiersz poleceń. Ale ta technologia również nie stała się idealnym narzędziem do administrowania i automatyzowania tej administracji dla administratorów systemu, ponieważ Windows Script Host wymagał znajomości powyższych języków programowania, która w rzeczywistości jest zbędna dla administratorów systemu. Administratorom wystarczy proste narzędzie administracyjne z możliwością zaprogramowania niektórych działań i nie chcą zagłębiać się w modele obiektowe oprogramowania w językach programowania VBScript i JScript.

W rezultacie Microsoft potrzebował opracować narzędzie administracyjne dla administratorów systemów, które w 100 procentach zaspokoiłoby wszystkie potrzeby administratorów systemów, zarówno pod względem możliwości administrowania i automatyzacji, jak i wygody i łatwości obsługi, dlatego pojawił się Windows PowerShell.

Co to jest Windows PowerShell?

Windows PowerShell to język skryptowy systemu Windows i powłoka poleceń przeznaczona do administrowania i konfigurowania systemów operacyjnych Windows. Program PowerShell jest zbudowany na bazie platformy CRL i platformy .NET Framework i w przeciwieństwie do wiersza poleceń, który akceptuje i zwraca tekst, program Windows PowerShell działa z obiektami. Każdy obiekt w programie PowerShell ma właściwości i metody, których można używać do manipulowania tymi obiektami.

W Windows PowerShell firma Microsoft opracowała koncepcję poleceń cmdlet ( polecenia cmdlet), który jest systemem nazewnictwa poleceń „ Czasownik rzeczownik" System ten pozwala administratorom systemów szybko opanować i uprościć pracę z PowerShellem.

Dzięki Windows PowerShell możesz:

  • Uzyskaj dostęp do systemu plików;
  • Zarządzaj rejestrem;
  • Zarządzaj usługami;
  • Zarządzaj procesami;
  • Skonfiguruj system operacyjny;
  • Zainstaluj oprogramowanie;
  • Zainstaluj role i komponenty serwera;
  • Administrowanie i konfigurowanie ról i komponentów serwera;
  • Pisać i używać skryptów do automatyzacji zarządzania i administracji;
  • Wykonuj inne zadania administratora systemu.

Windows PowerShell zawiera wiele powszechnie używanych narzędzi i poleceń, które można uruchamiać z wiersza poleceń, takich jak ipconfig, ping i inne. Dokonano tego, aby ułatwić przejście administratorów systemu z wiersza poleceń do PowerShell.

Ponadto dla wygody wiele często używanych poleceń i narzędzi w programie PowerShell ma synonimy ( Alias), na przykład cls jest synonimem polecenia cmdlet Clear-Host, dir jest synonimem Get-ChildItem ( pełną listę synonimów można wyświetlić, uruchamiając polecenie cmdlet Get-Alias).

Aby uprościć wyszukiwanie żądanego polecenia, PowerShell udostępnia specjalne polecenie cmdlet Get-Command, za pomocą którego można wyszukiwać zarówno według czasownika, jak i rzeczownika. Wszystkie polecenia w Windows PowerShell są pogrupowane w moduły ( np. Hyper-V, NetTCPIP), co również ułatwia znalezienie odpowiedniego polecenia.

Po znalezieniu żądanego polecenia możesz zapoznać się z instrukcją pracy z tym poleceniem, tj. help, do tego celu służy specjalne polecenie cmdlet Get-Help, na przykład następujące polecenie wyświetli pomoc dla polecenia cmdlet Get-Command:

Uzyskaj pomoc Uzyskaj polecenie

Pomoc w Windows PowerShell może być krótka, szczegółowa ( parametr -Szczegółowe), pełny ( parametr -Pełny), możesz także wyświetlić tylko przykłady ( parametr - Przykłady). Poniższe polecenie pokaże tylko przykłady użycia polecenia cmdlet Get-Command:

Get-Help Get-Command -Przykłady

Pomoc PowerShell jest aktualizowalna, tj. można go zaktualizować za pomocą polecenia Update-Help.

Wersje Windows PowerShell

Pierwsza wersja PowerShell 1.0 pojawiła się 14 listopada 2006 roku i została wydana jako osobna dystrybucja, którą można było zainstalować na następujących wersjach systemów operacyjnych Windows: Windows XP Service Pack 2, Windows Server 2003 Service Pack 1 i Windows Vista.

W systemie Windows Server 2008 program PowerShell 1.0 był dostępny jako komponent, który również wymagał instalacji.

Począwszy od Windows 7 i Windows Server 2008 R2, PowerShell jest integralnym składnikiem systemu ( te. preinstalowany, nie trzeba go instalować). Poniżej znajduje się tabela zgodności pomiędzy wersją PowerShell a wersją systemu operacyjnego Windows ( te. jaka wersja programu PowerShell jest domyślnie instalowana w której wersji systemu Windows):

Wersja PowerShella Wersje Windowsa
PowerShell 2.0 Windows 7, Windows Serwer 2008 R2
PowerShell 3.0 Windows 8, Windows Serwer 2012
PowerShell 4.0 Windows 8.1, Windows Server 2012 R2
PowerShell 5.0 Windows 10, Windows Serwer 2016

Z każdą nową wersją PowerShell staje się coraz potężniejszym narzędziem administracyjnym; dla porównania pierwszy PowerShell miał około 130 poleceń cmdlet, a w PowerShell 5.0 jest ich już ponad 600!

Aktualną wersję programu PowerShell możesz sprawdzić, korzystając z właściwości PSVersion wbudowanej zmiennej $PSVersionTable, na przykład uruchom następującą komendę:

$PSVersionTable.PSVersion

Lub uruchom polecenie cmdlet

Get-Variable -Name PSVersionTable –Tylko wartość

gdzie wartość PSVersion będzie wersją programu PowerShell.

Język PowerShella

PowerShell jest zorientowanym obiektowo, skryptowym językiem programowania. Służy do pisania poleceń sterujących wszystkimi składnikami systemu operacyjnego Windows w programie Windows PowerShell oraz do pisania skryptów automatyzujących zadania administracyjne w zintegrowanym środowisku skryptowym (ISE) programu Windows PowerShell. Choć język PowerShell został stworzony do zadań administracyjnych, jest pełnoprawnym skryptowym językiem programowania, gdyż posiada konstrukcje programowe obecne w każdym języku programowania, takie jak: warunki, pętle, obsługa błędów, praca ze zmiennymi, obiektami i tablice.

Język PowerShell posiada jednolitą składnię pisania poleceń oraz strukturę nazewnictwa tych poleceń opartą na zasadzie „ Czasownik rzeczownik", co czyni ten język intuicyjnym zarówno dla programistów, jak i administratorów systemów.

Windows PowerShell

Windows PowerShell to środowisko do wykonywania poleceń i skryptów w PowerShell. Powłoka ta ma takie same możliwości jak linia poleceń, takie jak: przechowywanie historii wykonania poleceń, dostosowywanie wyglądu powłoki, kończenie wykonywania poleceń kombinacją klawiszy Ctrl+C, a także wiele innych funkcji, których nie ma w powłoka wiersza poleceń, na przykład tak wspaniała funkcja jak „ Podświetlanie składni» ( wprowadzone w PowerShell 5.0).

Istnieje kilka sposobów uruchomienia PowerShell, na przykład:

  • Z wiersza poleceń, wpisując PowerShell;
  • Poprzez okno dialogowe „ Wykonać» ( skrót klawiaturowy Win+R), również wpisując PowerShell;
  • W Windows 7 - Start->Wszystkie programy -> Akcesoria -> Windows PowerShell -> Windows PowerShell;
  • W systemie Windows 8.1 lub Windows Server 2012 R2 - Start->Wszystkie programy -> Narzędzia systemowe -> Windows PowerShell;
  • W systemie Windows 10 lub Windows Server 2016 - Start->Wszystkie programy -> Katalog Windows PowerShell ( w grupie W) -> Windows PowerShell.

Przykład uruchomienia PowerShell w Windows Server 2016

Zrzut ekranu programu PowerShell w systemie Windows Server 2016

Polecenia cmdlet w PowerShell

Polecenie cmdlet (polecenie cmdlet) to polecenie programu Windows PowerShell umożliwiające interakcję z obiektami systemu operacyjnego w celu zarządzania nimi. Te polecenia są częścią języka PowerShell. Polecenia cmdlet są budowane zgodnie z zasadą „ Czasownik rzeczownik", oddzielone łącznikiem (-); innymi słowy, najpierw wskazujemy, co należy zrobić, a łącznikiem wskazujemy, co należy zrobić. Na przykład polecenie cmdlet Get-Help, gdzie Get jest czasownikiem oznaczającym „ Dostawać„, a Pomoc jest rzeczownikiem” Pomoc„w kontekście PowerShell” Pokaż pomoc" Polecenia cmdlet programu PowerShell zwracają wyniki w postaci obiektów, co stanowi jedną z głównych różnic w porównaniu z wierszem poleceń systemu Windows, w którym polecenia zwracają na ekran tylko tekst.

Oprócz poleceń cmdlet służących do uzyskiwania danych (Get) istnieją również typy poleceń cmdlet, takie jak:

  • Dodaj – dodanie danych;
  • Jasne – jasne;
  • Włącz – włącz;
  • Wyłącz – wyłącz;
  • Nowy – utwórz;
  • Usuń – usuń;
  • Zestaw – zestaw;
  • Zacznij - zacznij;
  • Zatrzymaj się – zatrzymaj się;
  • Eksport – eksport;
  • Importuj – importuj;
  • I wiele więcej.

Pełną listę poleceń cmdlet w programie Windows PowerShell można wyświetlić za pomocą specjalnego polecenia cmdlet Get-Command. Na przykład uruchom go z parametrem polecenia cmdlet -CommandType, w wyniku czego na ekranie zostanie wyświetlona lista poleceń cmdlet.

Polecenie cmdlet Get-Command -CommandType

Jak już zrozumiałeś, polecenia cmdlet mają parametry, za pomocą których możemy określić działania polecenia cmdlet. Parametry mogą być wymagane lub opcjonalne; na przykład polecenie cmdlet Get-Command nie ma wymaganych parametrów.

Poniższy obrazek przedstawia sposób wyszukiwania poleceń cmdlet według czasownika ( Parametr czasownika). W tym przypadku wyświetliliśmy listę poleceń cmdlet, które mogą coś ponownie uruchomić.

Zespół

Get-Command -Czasownik Uruchom ponownie

Aby wyszukać polecenie cmdlet według rzeczownika, należy użyć parametru Noun. Na przykład poniżej znajduje się lista poleceń cmdlet współpracujących z usługami.

Zespół

Get-Command -Noun Service

Jeśli nie znajdziesz żądanego polecenia cmdlet po jego pełnej nazwie, możesz użyć maski w formacie *Tekst*.

Potok w PowerShell

Jedną z głównych funkcji Windows PowerShell jest możliwość użycia potoku podczas wykonywania poleceń.

Przenośnik– jest to przeniesienie wyniku polecenia cmdlet przez pionową kreskę (|) do innego polecenia cmdlet. Jednocześnie, jak pamiętasz, polecenia cmdlet PowerShell pracują z obiektami i odpowiednio zwracają obiekty, obiekty są również przesyłane wzdłuż potoku.

Korzystając z potoku, możesz w prosty i wygodny sposób wykonywać złożone zadania, bez konieczności pisania skomplikowanych algorytmów i skryptów.

Na przykład znajdźmy nazwę największego pliku w katalogu „C:\Windows\System32” ( prosty przykład rurociągu).

Zespół

Get-ChildItem -Ścieżka „C:\Windows\System32” -Plik | Sortuj długość obiektu - Malejąco | Wybierz obiekt - Najpierw 1

  • Get-ChildItem – polecenie cmdlet umożliwiające pobieranie obiektów ze wskazanego katalogu;
  • Sort-Object to polecenie cmdlet służące do sortowania obiektów, w naszym przypadku sortujemy według rozmiaru pliku ( długość -Malejąco);
  • Select-Object to cmdlet służący do wybierania pożądanych właściwości obiektu; w naszym przypadku wyświetlamy standardowe pola i tylko pierwszy obiekt, tj. duży plik ( parametr -Pierwszy 1).

Wszystkie polecenia cmdlet są oddzielone od siebie pionową kreską. Wynik każdego polecenia cmdlet jest przekazywany jako dane wejściowe do innego polecenia cmdlet, tj. najpierw pobieramy wszystkie obiekty w określonym katalogu, następnie sortujemy wynik i na koniec wybieramy pierwszy obiekt.

Wykonywanie zadań w tle

Windows PowerShell ma możliwość uruchamiania zadań w tle, co jest mechanizmem, dzięki któremu można uruchomić polecenie ( na przykład, co zajmuje dużo czasu) w tle, tj. po uruchomieniu wracasz do bieżącej sesji i możesz kontynuować pracę bez czekania na zakończenie polecenia. Będziesz potrzebować tej funkcji, gdy będziesz musiał uruchomić polecenie, którego wykonanie zajmuje dość dużo czasu, a jak wiesz, w tym czasie sesja PowerShell jest blokowana do czasu zakończenia polecenia i musisz kontynuować pracę.

Możesz zarządzać wszystkimi zadaniami działającymi w tle, na przykład przeglądać listę zadań, zatrzymywać zadanie, usuwać zadanie i oczywiście przeglądać wynik zadania.

Windows PowerShell zawiera następujące polecenia cmdlet umożliwiające pracę z zadaniami w tle:

  • Start-Job – rozpocznij zadanie w tle;
  • Stop-Job – zatrzymuje zadanie w tle
  • Get-Job – przeglądaj listę zadań w tle;
  • Odbierz-Job – wyświetl wynik zadania w tle;
  • Usuń zadanie – usuń zadanie w tle;
  • Wait-Job – przenieś zadanie w tle na pierwszy plan, aby poczekać na jego zakończenie.

Aby działać w tle, należy wpisać polecenie Start-Job, a w nawiasach klamrowych () polecenie lub zestaw poleceń, które chcesz uruchomić w tle.

Na przykład uruchommy jakieś zadanie ( pokaż listę usług) w tle, następnie spójrz na listę zadań w tle i wyświetl wynik naszego zadania ( te. lista usług).

Uruchom zadanie w tle

Rozpocznij pracę (Uzyskaj usługę)

Patrzymy na listę zadań uruchomionych w tle

Wyświetlanie wyniku Job1

Odbierz-Praca Job1

Jak widać mamy teraz zadanie o statusie „ Zakończony", tj. już się skończyło ( Get-Service po prostu działa szybko).

Aby zobaczyć wynik zadania w tle, tj. Polecenie cmdlet Get-Service wykonaliśmy polecenie Otrzymaj zadanie i przekazaliśmy mu nazwę zadania ( możliwa jest również wartość identyfikatora). W rezultacie wyświetliliśmy listę usług.

Zdalne sterowanie za pomocą PowerShell

Windows PowerShell jest przeznaczony nie tylko do użytku lokalnego, ale także do zdalnego wykonywania poleceń. Ta funkcja jest niezbędna, abyś mógł zarządzać zdalnymi komputerami ze swojego miejsca pracy, tj. uruchamiaj polecenia PowerShell.

Istnieje kilka metod zdalnego sterowania:

  • Korzystanie z parametru -Nazwa komputera (wiele zespołów to ma). Innymi słowy, jako parametr przekazujesz nazwę komputera, na którym chcesz wykonać polecenie. Metoda ma tę wadę, że ogranicza się do wykonania jednego polecenia;
  • Korzystanie z sesji. Polecenie cmdlet Enter-PSSesja (sesja interaktywna). W ten sposób łączysz się z komputerem zdalnym i wszystkie polecenia wpisane w PowerShell zostaną wykonane na komputerze zdalnym w taki sam sposób, jakbyś wpisał polecenia bezpośrednio na komputerze zdalnym. Metoda ma również tę wadę, że sesja jest ograniczona do jednego komputera;
  • Korzystanie z polecenia cmdlet Wywołaj-polecenie. Korzystając z tej metody, możesz uruchamiać polecenia lub skrypty na jednym lub kilku komputerach.

Na przykład, aby połączyć się z komputerem zdalnym ( w poniższym przykładzie NazwaSerwera) w sesji interaktywnej uruchom następujące polecenie:

Wprowadź nazwę serwera PSSession

Skrypty, funkcje i moduły w Windows PowerShell

Jeśli napisałeś algorytm, najprawdopodobniej będziesz chciał go zapisać, aby móc go użyć w przyszłości. W tym celu Windows PowerShell posiada mechanizm skryptowy.

Istota tego mechanizmu jest następująca: piszesz zestaw potrzebnych poleceń i zapisujesz go jako skrypt - jest to prosty plik tekstowy z rozszerzeniem .PS1.

Następnie, aby uruchomić ten skrypt, wystarczy uruchomić go w PowerShell. W takim przypadku musisz albo podać pełną ścieżkę do pliku skryptu, albo przejść do katalogu ze skryptem i wywołać go po nazwie.

Ważny!

Domyślnie uruchamianie skryptów w systemie Windows jest zabronione! Aby wyświetlić zasady wykonywania skryptów, uruchom polecenie cmdlet Get-ExecutionPolicy. W rezultacie zwróci bieżącą politykę, na przykład:

  • Ograniczone – wykonanie jakichkolwiek skryptów jest zablokowane ( domyślna wartość);
  • AllSigned – dozwolone jest wykonywanie skryptów posiadających podpis cyfrowy;
  • RemoteSigned – dozwolone jest wykonywanie skryptów lokalnych, wszystkie pobrane skrypty muszą posiadać podpis cyfrowy;
  • Bez ograniczeń - dozwolone jest wykonywanie dowolnych skryptów ( nie zalecane, ponieważ jest to niebezpieczne!).

Aby umożliwić uruchamianie skryptów, należy użyć polecenia cmdlet Ustaw-ExecutionPolicy z jednym z powyższych parametrów.

Na przykład, aby zezwolić na uruchamianie lokalnych skryptów, uruchom poniższe polecenie i zaakceptuj zmiany, naciskając Y.

Ustaw opcję ExecutionPolicy RemoteSigned

Możesz przekazać parametry do skryptu, ustawić je jako obowiązkowe lub ustawić wartość domyślną.

Windows PowerShell zapewnia mechanizm tworzenia własnych funkcji, które podobnie jak wbudowane polecenia cmdlet mogą być używane w powłoce PowerShell.

W tym celu należy podać słowo kluczowe Function, a następnie napisać algorytm obsługi tej funkcji w nawiasach klamrowych (), czyli tzw. zestaw poleceń ( na przykład często używana procedura: utwórz użytkownika z określonymi uprawnieniami, wyczyść określone katalogi i tak dalej). Następnie musisz zapisać to wszystko w skrypcie, ale tylko z rozszerzeniem .psm1, ponieważ ten plik będzie już modułem.

To nie wszystko, plik ten należy umieścić w katalogu, w którym PowerShell szuka modułów. Istnieje kilka takich katalogów ( specjalny katalog w profilu użytkownika, katalog, w którym zainstalowany jest PowerShell), można je przeglądać w zmiennych środowiskowych programu PowerShell. Aby to zrobić, uruchom następujące polecenie

Get-ChildItem Env:\PSModulePath | Format-Tabela -AutoSize

Po umieszczeniu modułu, który napisałeś w specjalnym katalogu, możesz uzyskać dostęp do swoich funkcji jak zwykłe polecenia PowerShell.

Zintegrowane środowisko skryptowe Windows PowerShell (ISE)

Aby ułatwić pisanie skryptów, funkcji i odpowiednio modułów, Microsoft opracował specjalny program graficzny Zintegrowane środowisko skryptowe(ISE) - Zintegrowane środowisko skryptowe. Praca w tym programie jest bardzo wygodna, a także ma potężną funkcjonalność ( tworzenie wielu zakładek ze skryptami, obszarem wyjściowym, wbudowanym debugerem i nie tylko).

Możesz uruchomić to w ten sposób:

  • W Windows 7 - Start -> Wszystkie programy -> Akcesoria -> Windows PowerShell -> Windows PowerShell ISE;
  • W systemie Windows 10 lub Windows Server 2016 - Start->Wszystkie programy -> Katalog Windows PowerShell ( w grupie W) -> Windows PowerShell ISE.

Notatka! ISE nie będzie działać na systemie Windows Server zainstalowanym w wersji Server Core.

Zrzut ekranu przedstawiający zintegrowane środowisko skryptowe programu PowerShell (ISE) w systemie Windows Server 2016

To wszystko dla mnie, mam nadzieję, że materiał był dla Ciebie przydatny! Powodzenia!

Windows PowerShell to jedno z ważnych narzędzi w rękach administratora systemu Windows. PowerShell to potężne narzędzie, którego nie należy lekceważyć. Celem tego artykułu jest przedstawienie podstawowych umiejętności korzystania z programu Windows PowerShell.

PowerShell to coś więcej niż tylko powłoka wiersza poleceń. Pierwsza wersja PowerShella pojawiła się w 2006 roku; powodem jej powstania była prymitywność klasycznej linii poleceń Windows, która nie pozwalała na wykonywanie skomplikowanych algorytmów.

Program Windows PowerShell jest preinstalowany w systemach Windows 7, 8, 8.1 i Windows Server 2008 R2, 2012 R2, ale można go także dodać do systemów Windows XP z dodatkiem SP3, Vista i Windows Server 2003 z dodatkiem SP2. Interfejs PowerShell przypomina znany interfejs wiersza poleceń.


Interfejs Windows PowerShell

Jak wspomniano powyżej, sprawa nie ogranicza się do interfejsu wiersza poleceń. PowerShell zapewnia administratorowi systemu własny język skryptowy, który pozwala zautomatyzować złożone działania.

Polecenia uruchamiane w programie PowerShell mogą mieć formę poleceń cmdlet, funkcji, skryptów i zewnętrznych plików wykonywalnych.

Polecenia cmdlet to nowy typ poleceń wbudowany w PowerShell. Polecenia tego typu są kompilowane do bibliotek dll i ładowane do procesu PowerShell po jego uruchomieniu. Same polecenia cmdlet nie działają jako aplikacje.

Nazwy poleceń cmdlet są zgodne ze wzorcem "czasownik rzeczownik". Czasownik opisuje czynność, którą chcemy wykonać, a rzeczownik opisuje przedmiot, na którym czynność zostanie wykonana. Na przykład, aby wyczyścić ekran konsoli, musisz wprowadzić polecenie Clear-Host. Możesz wyświetlić dostępne polecenia, wpisując Get-Command w konsoli.

Polecenia cmdlet mogą mieć parametry. Ogólnie wygląda to tak:

nazwa_cmdletu -parametr1 -parametr2 argument1 argument2

Argumenty to parametry, które nie mają nazw.

Jak to działa? Na przykład mamy polecenie dir, które wyświetla zawartość katalogu.

Przykład polecenia dire

Powiedzmy, że zgubiłem określony plik. Niech to będzie plik pomocy programu Photoshop. Pamiętam, że nazwa pliku zawiera „photoshop” i że jest to plik pdf. O ile pamiętam, plik znajduje się w tym katalogu. Mogę wyświetlić listę wszystkich plików w katalogu, jak w powyższym przykładzie i wyszukać plik ręcznie. Lub mogę użyć parametru -filter, który wyświetli tylko te pliki, które pasują do określonego argumentu. Argumentem będzie *photoshop*.pdf . Wokół słowa „photoshop” znajdują się gwiazdki, ponieważ nie pamiętam dokładnej nazwy pliku i mówię PowerShellowi, że przed i po „photoshop” mogą znajdować się dowolne znaki. Mówię ci również, żebyś poszukał pliku pdf.

Zatem plik, którego szukałeś, został znaleziony. W ogólnym widoku poleceń cmdlet wskazano, że jedno polecenie cmdlet może mieć kilka parametrów. Z kolei parametry nie zawsze mają argumenty.

Skomplikujmy trochę nasz przykład. Powiedzmy, że teraz muszę znaleźć książkę Christophera Dougherty’ego. Zespół katalog -filter *ciasto*.pdf nic mi nie dało. Oznacza to, że książki nie ma w tym katalogu, ale pamiętam na pewno, że gdzieś tu jest, oczywiście w podkatalogach. Aby szukać w podkatalogach dodamy parametr -recurse.

Wyszukiwanie potrwa trochę dłużej, ale książka, której szukasz, zostanie znaleziona.

Jak widać parametr -recurse nie zawiera argumentu. Same parametry mogą być w dowolnej kolejności, najważniejsze jest ścisłe przestrzeganie logiki, gdy wymagany argument pojawia się po parametrze, dla którego jest przeznaczony. Zatem polecenie katalog -filter *dougherty*.pdf -recurse będzie działać dokładnie tak samo jak dir -recurse -filter *dougherty*.pdf.

Nazwy parametrów można zapisać w formie skróconej, co jest dość wygodne w codziennej pracy z wierszem poleceń. Skrót musi być zrozumiały dla tłumacza, tj. nie pozwalaj na podwójną interpretację. Na przykład możemy skrócić parametr -recurse do prostego -r, a skrócenie -filter do -f spowoduje błąd, ponieważ Istnieje również parametr -force. W takim przypadku możesz skrócić -filter do -fi .

Mamy więc już pomysł na temat poleceń cmdlet. Następnym razem .