Czym są skrypty Windows PowerShell?
Szybkie linki
⭐ Przegląd skryptów PowerShell
⭐ Szczegółowe instrukcje
⭐ Wyjaśnienie parametrów PowerShell
⭐ Tworzenie potoku
⭐ Zapisywanie potoku jako skryptu PS1 Potok jako skrypt PS1
⭐ PowerShell jest również dostępny w systemach Linux i macOS
Kluczowe wnioski
PowerShell to wszechstronny i potężny język skryptowy zaprojektowany w celu ułatwienia automatyzacji różnych procesów obliczeniowych, zapewniając użytkownikom skuteczny sposób usprawnienia przepływu pracy poprzez umożliwienie im wykonywania poleceń i wykonywania operacji w ujednoliconym środowisku.
Polecenia Powershell, znane jako cmdlets, posiadają pojedynczą funkcję. Polecenie “Get-Command” umożliwia przeglądanie tablicy dostępnych poleceń cmdlet.
PowerShell może być wykorzystywany w różnych systemach operacyjnych, w tym Windows, macOS i Linux.
PowerShell to wszechstronny język skryptowy zaprojektowany specjalnie do automatyzacji różnych zadań obliczeniowych z łatwością, wydajnością i niezawodnością w systemach opartych na Windows. Dowiedz się, jak wykorzystać jego możliwości, tworząc niestandardowe skrypty dostosowane do konkretnych wymagań.
Przegląd skryptów PowerShell
Aby rozpocząć tworzenie podstawowych skryptów PowerShell w systemie operacyjnym Windows, konieczne jest zrozumienie trzech podstawowych pojęć:
⭐ Cmdlets : polecenia jednofunkcyjne.
Parametry służą do określenia konkretnych szczegółów dotyczących wykonywania poleceń Cmdlet lub poleceń, w tym ich celu, czasu, lokalizacji i metodologii. Parametry te zapewniają niezbędne wskazówki do wykonywania zadań w kontrolowany i precyzyjny sposób.
Potok to potężna funkcja w PowerShell, która umożliwia przekazywanie danych wyjściowych jednego polecenia lub funkcji jako danych wejściowych do innego, tworząc strukturę podobną do łańcucha. Korzystając z tej funkcji, można łatwo tworzyć złożone zadania skryptowe, łącząc ze sobą wiele poleceń, umożliwiając wydajną automatyzację i usprawnione przepływy pracy.
Wykorzystując wszystkie trzy komponenty, możliwe jest tworzenie przyjaznych dla użytkownika skryptów, które usprawniają różne procesy poprzez automatyzację.
W tym przykładzie ilustrujemy integrację wielu poleceń cmdlet PowerShell w celu osiągnięcia określonego celu. Sekwencja tych poleceń jest określana jako “potok”, w którym każde pojedyncze polecenie przetwarza dane i przekazuje je do następnego, aż do osiągnięcia pożądanego rezultatu.Takie podejście umożliwia użytkownikom wykonywanie złożonych operacji z większą wydajnością poprzez usprawnienie przepływu pracy i ograniczenie ręcznej interwencji.
Aby wykonać tę sekwencję operacji za pomocą PowerShell, można zastosować polecenie podobne do poniższego:
Get-Object Potato | Peel-Object | Chop-Object Chips| Cook-Object DeepFry `
| Place-Object Bowl
Cmdlets in Detail
PowerShell jest wyposażony w zestaw wbudowanych poleceń, które umożliwiają użytkownikom manipulowanie obiektami systemowymi i wykonywanie wielu operacji. Te podstawowe polecenia w PowerShell są określane jako Cmdlets.
PowerShell wykorzystuje specyficzny typ poleceń znany jako cmdlets, które są kompaktowe i wykonują pojedynczą funkcję za pomocą rozszerzenia .dll. Te miniaturowe jednostki programowania mają tę zaletę, że są zwięźle skompilowane, co skutkuje szybkim wykonaniem w porównaniu do bardziej złożonych funkcji.
Korzystanie z PowerShell oferuje szeroką gamę poleceń, obejmujących wiele funkcji. Nie jest konieczne, aby stać się biegłym w każdym poleceniu; zaleca się raczej rozpoczęcie od zdobycia podstawowej wiedzy i stopniowe jej poszerzanie w trakcie pisania skryptów. Aby przejrzeć polecenia interfejsu wiersza poleceń (CLI) aktualnie zainstalowane w systemie, wykonaj następującą instrukcję:
Get-Command
Po zapoznaniu się z wynikami można zauważyć, że są one zgodne ze wzorem konstrukcji czasownik-rzeczownik. Taki układ ułatwia zrozumienie funkcji konkretnego polecenia Cmdlet.
Powershell zapewnia różne wbudowane polecenia cmdlet do wykonywania różnych zadań. Polecenie Get-Command zwraca tablicę wszystkich dostępnych poleceń w Powershell. Podobnie polecenie Get-Process pobiera informacje o uruchomionych procesach w systemie. Dodatkowo, cmdlet Copy-Item pozwala użytkownikom na przeniesienie jednego lub wielu plików z jednej lokalizacji do innego określonego folderu docelowego.
Narzędziom wiersza poleceń towarzyszy kompleksowa dokumentacja, która obejmuje ilustrujące przykłady, szczegółowe wytyczne dotyczące użytkowania i dogłębne wyjaśnienia dotyczące ich możliwości.
Aby uzyskać więcej informacji na temat konkretnego polecenia Cmdlet i jego użycia, wykonanie następującego polecenia dostarczy wyczerpujących szczegółów:
Get-Help <name-of-cmdlet>
Objaśnienie parametrów PowerShell
Polecenia PowerShell mogą być wykonywane z różnym stopniem szczegółowości poprzez użycie parametrów. Parametry te pozwalają na większą kontrolę nad wykonywaniem poleceń Cmdlet i funkcji poprzez określenie czynników, takich jak cel, czas, lokalizacja i metodologia.
Ilustracją tego jest uzyskanie listy aktualnie aktywnych procesów w systemie operacyjnym za pomocą polecenia “Get-Process”.
Aby uzyskać określony proces za pomocą parametrów wiersza poleceń, można użyć atrybutu “Name” w połączeniu z poleceniem cmdlet “Get-Process”. Na przykład, aby pobrać wszystkie instancje aplikacji Slack, użytkownik wprowadziłby następujące polecenie: mathematicaGet-Process -Name " Slack
Get-Process -Name Slack
Po wykonaniu polecenia zostanie wyświetlona lista procesów z etykietą “slack”.
Niektóre zmienne mają cechę znaną jako “pozycyjność”, w której ich oznaczenie jako obowiązkowe lub opcjonalne jest określane przez kontekst, a nie przez wyraźną etykietę. Na przykład, podczas wywoływania polecenia Get-Process -Name Slack
, pominięcie tytułu parametru powoduje jego włączenie jako pozycyjnego, co pozwala na zrozumienie go w danym kontekście bez konieczności stosowania określonej etykiety. Podobnie, podczas wykonywania polecenia Get-Process Slack
, brak specyfikacji parametru również czyni go pozycyjnym, umożliwiając jego zrozumienie w świetle otaczających okoliczności bez konieczności stosowania sformalizowanego identyfikatora.
Każdy Commandlet ma swój własny zestaw akceptowalnych parametrów wejściowych, które można wyświetlić za pomocą polecenia Get-Help i przechodząc do sekcji Syntax dla tego konkretnego Commandletu.
Get-Help Get-Process
Zostanie wyświetlony zestaw dostępnych metod wykonywania określonego polecenia, obejmujący różne parametry i opcje.
W tym przypadku cmdlet Get-Process może akceptować różne parametry wejściowe, w tym między innymi Name, Id, ComputerName, Module i FileVersionInfo. Parametry te reprezentują różne atrybuty, które można wykorzystać w połączeniu z poleceniem cmdlet Get-Process w celu pobrania informacji o procesach uruchomionych w systemie komputerowym.
Symbol
|
Nazwa
|
Znaczenie
-|-|-
|
Puste
|
Parametr nie akceptuje danych wejściowych
-
|
Myślnik
|
Wskazuje nazwę parametru
<>
|
Nawiasy kątowe
|
Miejsce na tekst
[]
|
Nawiasy
|
Parametr, który może zawierać wiele wartości, często określany jako zmienna lub pole, reprezentuje element, który może być zmieniany podczas wykonywania programu i może mieć wpływ na jego wynik lub zachowanie.
{}
|
Nawiasy
|
Parametr akceptuje zestaw wartości
Niektóre parametry określają oczekiwane typy danych wejściowych, w tym ciągi znaków, liczby całkowite, logiczne i daty. Aby to zilustrować, rozważmy następujący fragment kodu:
Get-Process [[-Name] <string[]>]
Parametr Name jest w stanie pomieścić wiele wartości łańcuchowych, podczas gdy wspomniane ograniczenie ogranicza go do akceptowania tylko jednej wartości.
Get-Process -Id <int[]>
Parametr “Id” jest przeznaczony do przyjmowania jednej lub więcej wartości całkowitych, które mogą być wykorzystywane do różnych celów w aplikacjach programistycznych.
W celu dalszego udoskonalenia wyszukiwania procesów i uzyskania bardziej precyzyjnego zestawu wyników, można wykorzystać parametr “ID” w poleceniu PowerShell “Get-Process”. Ten konkretny parametr wymaga wprowadzenia wartości całkowitej, zgodnie z jego składnią. Włączając ten parametr do polecenia, użytkownicy są w stanie wskazać dokładniejszy proces na liście dostępnych opcji.
Get-Process -Id 3016
Następnie można zaobserwować pojedynczą instancję w wyliczeniu:
Tworzenie potoku
PowerShell przetwarza informacje jako encje, które są zorganizowane za pomocą serii poleceń lub funkcji, które są połączone za pomocą symbolu potoku (|). Wybór odpowiednich poleceń i ułożenie ich w spójny sposób przy użyciu potoku odgrywa kluczową rolę w tworzeniu wydajnego skryptu.
Oto przykład, jak można utworzyć prosty skrypt, który sortuje i wyświetla 5 największych plików w danym katalogu na podstawie ich rozmiaru, przy użyciu Pythona:pythonimport osimport shutildef get_largest_files(directory):# Pobierz listę wszystkich plików w katalogufile_list = os.listdir(directory)# Posortuj listę według rozmiaru pliku (w bajtach)sorted_by_size = sorted(file_list, key=os.path.getsize, reverse=True)# Zwróć tylko pierwsze n elementów posortowanej listyreturn sorted_by_size[:5]# Przykładowe użycie:directory = ‘/path/to/your/folder/’top_
Można wykorzystać konfigurację potoku w PowerShell, która wykazuje określoną strukturę do wykonania tego zadania. Wspomniany potok składa się z różnych komponentów, które współpracują ze sobą w celu osiągnięcia pożądanego rezultatu.
Get-ChildItem -Path "C:\Directory" -File | Sort-Object Length -Descending `
| Select-Object -First 5 | Format-Table Name, Length -AutoSize
Zapisywanie potoku jako skryptu PS1
Aby zapewnić wydajność i łatwość dostępu, warto zachować potok operacyjny, konwertując go do pliku skryptu PowerShell (.ps1) do wykorzystania w przyszłości. Wyeliminuje to potrzebę powtarzalnego ręcznego wprowadzania danych za każdym razem, gdy potok jest używany.
Jedna z prostych metod generowania pliku skryptu PowerShell (PS1) polega na wklejeniu żądanego skryptu bezpośrednio do edytora tekstu, takiego jak Notatnik, a następnie zapisaniu go przy użyciu rozszerzenia pliku “.ps1”.
Aby użyć skryptu PS1 w PowerShell, należy wykonać polecenie ./ScriptName.ps1
, po którym następuje dwukropek.
Aby rozwiązać wszelkie problemy z uprawnieniami, które mogą pojawić się podczas wykonywania skryptu, zaleca się wykonanie PowerShell z uprawnieniami administratora. Można to osiągnąć poprzez zainicjowanie podwyższonej sesji PowerShell, a następnie wykonanie skryptu w tym kontekście.
Gratulacje, jesteś teraz w stanie tworzyć skrypty PowerShell PS1.
## PowerShell jest również dostępny w systemach Linux i macOS
PowerShell stał się bardzo poszukiwanym językiem skryptowym dla początkujących ze względu na przyjazny dla użytkownika interfejs i szerokie możliwości. Wcześniej był on dostępny wyłącznie w ekosystemie Windows, jednak ostatnie aktualizacje umożliwiły dostępność PowerShell na różnych platformach, takich jak macOS i wiele dystrybucji Linuksa. To rozszerzenie jeszcze bardziej zwiększa wszechstronność PowerShell, umożliwiając użytkownikom płynne przenoszenie swoich umiejętności między różnymi systemami operacyjnymi.