Michał Walendowski

Szybki Start! PowerShell w moment

Książka stworzona przy pomocy AI.

© Michał Walendowski, 2024

PowerShell to nowoczesny, potężny język skryptowy i interaktywne środowisko konsolowe stworzone przez Microsoft, które umożliwia automatyzację i zarządzanie systemami operacyjnymi Windows oraz usługami chmurowymi, takimi jak Azure. Stanowi niezwykle przydatne narzędzie zarówno dla administratorów systemów, jak i dla deweloperów, pozwalając na sprawne wykonywanie zadań administracyjnych, zarządzanie sieciami, automatyzację powtarzalnych operacji i wiele innych. Książka stworzona przy pomocy AI.

ISBN 978-83-8384-767-2

Książka powstała w inteligentnym systemie wydawniczym Ridero

Spis treści

Szybki Start! PowerShell w moment

Rozdział 1: Wprowadzenie do PowerShella

1. Historia PowerShella

2. PowerShell vs. Inne Języki Skryptowe

3. Instalacja i Konfiguracja

3.1 Instalacja PowerShell na Windows

3.2 Instalacja PowerShell na macOS

3.3 Instalacja PowerShell na Linuxie

4. Uruchamianie PowerShella

5. Cmdlety

6. Pipeline (Potoki)

7. Praca z Obiektami

8. Korzystanie z Pomocy

Podsumowanie

Rozdział 2: Pierwsze kroki w PowerShellu

1. Podstawowa struktura komend

2. Korzystanie z cmdletów

3. Potoki (Pipeline)

4. Zmienne w PowerShellu

5. Typy danych w PowerShellu

6. Obsługa błędów

7. Korzystanie z aliasów

8. Łączenie cmdletów i filtracja wyników

9. Korzystanie z Get-Help i dokumentacja

10. Ćwiczenia praktyczne

Podsumowanie

Rozdział 3: Zmienne i struktury danych

1. Wprowadzenie do zmiennych w PowerShellu

2. Podstawowe typy danych w PowerShellu

3. Operacje na zmiennych

4. Tablice (Array)

5. Pętla foreach dla tablic

6. Hashtable (tablica asocjacyjna)

7. Operacje na hashtable

8. Zagnieżdżone struktury danych

9. Zmienne automatyczne i predefiniowane

10. Konwersja typów danych

Podsumowanie

Rozdział 4: Obsługa plików i systemu plików

1. Podstawowe cmdlety do obsługi plików

2. Tworzenie nowych plików i folderów

3. Przenoszenie i kopiowanie plików

4. Usuwanie plików i folderów

5. Praca z zawartością plików

6. Wyszukiwanie plików i folderów

7. Filtracja wyników przy użyciu Where-Object

8. Rekurencyjne przeszukiwanie katalogów

9. Operacje na ścieżkach i bieżący katalog

10. Obsługa błędów podczas operacji na plikach

11. Ćwiczenia praktyczne

Podsumowanie

Rozdział 5: Tworzenie skryptów w PowerShellu

1. Co to jest skrypt PowerShell?

2. Pierwszy skrypt PowerShell

3. Ustawienia uruchamiania skryptów (Execution Policy)

4. Zmienne i operacje na nich

5. Instrukcje warunkowe (if-else)

6. Pętle w PowerShellu

7. Funkcje

8. Parametry skryptu

9. Obsługa błędów

10. Komentarze w skryptach

11. Praktyczne przykłady

Podsumowanie

Rozdział 6: Funkcje i moduły

1. Funkcje w PowerShell

2. Moduły w PowerShell

3. Organizowanie kodu za pomocą modułów

Podsumowanie

Rozdział 7: Praca z obiektami i WMI

1. Co to jest obiekt?

2. Windows Management Instrumentation (WMI)

3. Praca z WMI na zdalnych komputerach

4. Filtracja i przetwarzanie danych WMI

5. Formatowanie wyników

Podsumowanie

Rozdział 8: Zarządzanie procesami i usługami

1. Zarządzanie procesami

2. Zarządzanie usługami

3. Praca z procesami i usługami na zdalnych komputerach

Podsumowanie

Rozdział 9: Interakcja z rejestrem Windows

1. Struktura rejestru Windows

2. Odczyt wartości z rejestru

3. Tworzenie i modyfikowanie kluczy i wartości rejestru

4. Zabezpieczenia i uprawnienia rejestru

5. Zdalna praca z rejestrem

Podsumowanie

Rozdział 10: Zarządzanie siecią i komputerami zdalnymi

1. PowerShell Remoting

2. Zarządzanie konfiguracją sieciową

3. Praca z komputerami zdalnymi za pomocą WinRM

4. Zarządzanie komputerami zdalnymi za pomocą PSSession

5. Monitorowanie stanu sieci

Podsumowanie

Rozdział 11: Bezpieczeństwo i uprawnienia w PowerShellu

1. Polityki wykonania skryptów (Execution Policies)

2. Uwierzytelnianie i autoryzacja

3. Uprawnienia użytkowników i grup

4. Audyt i logowanie

5. Szyfrowanie w PowerShellu

Podsumowanie

Rozdział 12: Debugowanie i obsługa błędów w PowerShellu

1. Rodzaje błędów w PowerShellu

2. Podstawowe mechanizmy obsługi błędów w PowerShellu

3. Blok Try / Catch / Finally

4. Obsługa specyficznych wyjątków

6. Obsługa błędów w zdalnych sesjach PowerShell

Podsumowanie

Rozdział 13: Automatyzacja zadań systemowych w PowerShellu

1. Automatyzacja zadań z harmonogramem zadań Windows

2. Automatyzacja zadań systemowych z użyciem pętli

3. Automatyzacja obsługi procesów i usług

4. Monitorowanie stanu systemu i powiadamianie o błędach

5. Przykład kompleksowej automatyzacji

Podsumowanie

Rozdział 14: Zaawansowane funkcje PowerShella

1. Manipulowanie obiektami w PowerShellu

2. Wyrażenia regularne w PowerShellu

3. Zaawansowane funkcje w PowerShellu

4. Praca z API i bazami danych

Podsumowanie

Bibliografia

Rozdział 1: Wprowadzenie do PowerShella

PowerShell to nowoczesny, potężny język skryptowy i interaktywne środowisko konsolowe stworzone przez Microsoft, które umożliwia automatyzację i zarządzanie systemami operacyjnymi Windows oraz usługami chmurowymi, takimi jak Azure. PowerShell stanowi niezwykle przydatne narzędzie zarówno dla administratorów systemów, jak i dla deweloperów, pozwalając na sprawne wykonywanie zadań administracyjnych, zarządzanie sieciami, automatyzację powtarzalnych operacji i wiele innych.

1. Historia PowerShella

Pierwsza wersja PowerShella została wydana w 2006 roku jako „Microsoft Command Shell” (nazwa zmieniona później na PowerShell). Zbudowany na platformie. NET Framework, PowerShell początkowo działał wyłącznie na systemie Windows. W 2016 roku Microsoft ogłosił wersję open-source o nazwie PowerShell Core, która jest kompatybilna z różnymi systemami operacyjnymi, w tym Linux i macOS. Od tego momentu PowerShell jest częścią ekosystemu. NET Core, co sprawiło, że stał się wieloplatformowy i bardziej elastyczny.

2. PowerShell vs. Inne Języki Skryptowe

PowerShell łączy w sobie cechy tradycyjnych języków skryptowych, takich jak Bash czy Python, z możliwościami obiektowego programowania zorientowanego na Windows. Dzięki temu daje użytkownikom możliwość pracy z różnorodnymi obiektami, nie ograniczając się jedynie do tekstu. PowerShell interpretuje wyniki komend jako obiekty, co pozwala na łatwiejsze zarządzanie danymi i wykonywanie skomplikowanych operacji.

Bash PowerShell Opis

ls Get-ChildItem Wyświetla listę plików i katalogów

cd Set-Location Zmienia katalog

echo Write-Output Wyświetla tekst

cat Get-Content Wyświetla zawartość pliku

grep Select-String Przeszukuje tekst w plikach

3. Instalacja i Konfiguracja

PowerShell jest obecnie dostępny jako część Windows, jednak jeśli chcesz korzystać z wersji PowerShell Core, możesz ją zainstalować na systemie Windows, macOS i Linux.

3.1 Instalacja PowerShell na Windows

Otwórz stronę https://github.com/PowerShell/PowerShell/releases.

Pobierz najnowszą wersję instalatora. msi.

Zainstaluj PowerShell, postępując zgodnie z instrukcjami instalatora.

3.2 Instalacja PowerShell na macOS

Uruchom Terminal.

Wpisz następującą komendę, aby zainstalować PowerShell za pomocą Homebrew:

brew install — cask powershell

3.3 Instalacja PowerShell na Linuxie

Dla systemów Linux istnieją różne metody instalacji PowerShell, zależnie od dystrybucji. Przykład dla Ubuntu:

Otwórz terminal.

Wykonaj poniższe komendy, aby zainstalować PowerShell:

sudo apt update

sudo apt install -y powershell

4. Uruchamianie PowerShella

Po zainstalowaniu PowerShella możesz go uruchomić, wpisując pwsh w terminalu (na Linuxie i macOS) lub otwierając aplikację PowerShell na Windowsie. Interfejs PowerShella składa się z wiersza poleceń, gdzie wpisujesz komendy, które są natychmiast wykonywane.

Przykład uruchomienia PowerShella i wykonania podstawowej komendy:

# Wyświetlenie „Hello, PowerShell!”

Write-Output „Hello, PowerShell!”

5. Cmdlety

PowerShell opiera się na zestawie komend zwanych „cmdletami”. Cmdlety to specjalne funkcje, które realizują konkretne zadania administracyjne. Nazewnictwo cmdletów składa się z dwóch części: czasownika i rzeczownika, np. Get-Process, Set-Location, Remove-Item. Każdy cmdlet jest zaprojektowany tak, aby wykonywał jedno zadanie, co ułatwia ich łączenie w bardziej złożone operacje.

Przykłady cmdletów:

# Wyświetlenie listy procesów

Get-Process

# Zmiana katalogu

Set-Location -Path „C:\Users”

# Usuwanie pliku

Remove-Item -Path „C:\Users\Public\example. txt”

6. Pipeline (Potoki)

PowerShell umożliwia przesyłanie wyników z jednego cmdletu do drugiego za pomocą symbolu |. Potoki pozwalają na tworzenie bardziej złożonych komend poprzez łączenie prostych cmdletów.

Przykład użycia potoku:

# Wyświetlenie wszystkich procesów posortowanych według zużycia pamięci

Get-Process | Sort-Object -Property WS -Descending

7. Praca z Obiektami

PowerShell przetwarza dane w postaci obiektów, co oznacza, że wynikiem komendy może być struktura danych z różnorodnymi właściwościami i metodami. Dzięki temu można łatwo manipulować danymi i dostosowywać ich wyświetlanie.

Przykład pracy z obiektami:

# Przechwycenie informacji o procesach do zmiennej

$procesy = Get-Process

# Wyświetlenie informacji o pierwszym procesie w formie tabeli

$procesy | Select-Object -First 1 | Format-Table

8. Korzystanie z Pomocy

PowerShell posiada rozbudowany system pomocy, który można uruchomić za pomocą cmdletu Get-Help. Pomoc zawiera opisy komend, przykłady ich użycia oraz wyjaśnienia parametrów.

Przykład użycia Get-Help:

# Wyświetlenie pomocy dla komendy Get-Process

Get-Help Get-Process

# Wyświetlenie przykładowych zastosowań komendy Get-Process

Get-Help Get-Process -Examples

Podsumowanie

PowerShell to potężne narzędzie, które zmienia sposób, w jaki administratorzy i deweloperzy zarządzają systemami i automatyzują zadania. Jego wszechstronność sprawia, że jest idealny do pracy zarówno na systemach lokalnych, jak i chmurowych. W kolejnych rozdziałach będziemy zgłębiać bardziej zaawansowane techniki i sposoby na optymalizację pracy za pomocą PowerShella.

Warto poświęcić czas na naukę PowerShella, gdyż umiejętność jego obsługi może znacznie ułatwić zarządzanie systemami oraz przyspieszyć realizację wielu zadań w codziennej pracy.

Rozdział 2: Pierwsze kroki w PowerShellu

Rozpoczynając pracę z PowerShellem, warto zapoznać się z podstawowymi komendami i funkcjonalnościami tego środowiska. W tym rozdziale omówimy strukturę komend, zasady pracy z cmdletami oraz sposób wykorzystania potoków. Dowiesz się także, jak korzystać ze zmiennych, przetwarzać wyniki, a także filtrować dane. Praktyczne przykłady ułatwią Ci przyswajanie wiedzy i przygotują Cię do bardziej zaawansowanych zagadnień.

1. Podstawowa struktura komend

PowerShell opiera się na prostym, logicznym schemacie nazewnictwa komend w formie czasownik-rzeczownik, np. Get-Process, Set-Location, Remove-Item. Dzięki tej konwencji komendy są intuicyjne i łatwe do zapamiętania.

Przykładowe komendy:

• Get-Process — wyświetla informacje o działających procesach.

• Set-Location — zmienia bieżący katalog.

• Remove-Item — usuwa określony plik lub folder.

Przykład:

# Wyświetlenie listy aktywnych procesów

Get-Process

# Przejście do katalogu C:\Users

Set-Location -Path „C:\Users”

# Usunięcie pliku „example. txt” z katalogu Public

Remove-Item -Path „C:\Users\Public\example. txt”

2. Korzystanie z cmdletów

Cmdlety to podstawowe komendy PowerShella, które realizują konkretne zadania. Każdy cmdlet ma unikalną nazwę i może przyjmować różne parametry, pozwalając na dostosowanie działania do bieżących potrzeb.

Parametry i opcje cmdletów: Parametry są dodatkowymi opcjami, które możesz przekazać do cmdleta, aby kontrolować jego zachowanie. Przykład:

# Wyświetlenie procesów posortowanych według użycia pamięci

Get-Process | Sort-Object -Property WS -Descending

3. Potoki (Pipeline)

PowerShell wyróżnia się możliwością przesyłania wyników z jednego cmdletu do drugiego za pomocą potoku (|). Potoki pozwalają na tworzenie bardziej złożonych operacji, łącząc proste komendy w jednym wierszu.

Przykład użycia potoków:

# Wyświetlenie procesów o nazwie zawierającej „notepad” i ich sortowanie według użycia pamięci

Get-Process | Where-Object {$_.ProcessName -like „*notepad*”} | Sort-Object -Property WS -Descending

W powyższym przykładzie używamy Get-Process, by uzyskać listę procesów, a następnie filtrujemy wyniki za pomocą Where-Object, sprawdzając, czy nazwa procesu zawiera słowo „notepad”. Wyniki są następnie sortowane według zużycia pamięci.

4. Zmienne w PowerShellu

Zmienne pozwalają na przechowywanie danych, które możemy wielokrotnie wykorzystać w różnych częściach skryptu lub wiersza poleceń. W PowerShellu zmienne oznaczane są znakiem $.

Przykład tworzenia i używania zmiennych:

# Przechowanie wartości liczbowej

$wiek = 30

# Wyświetlenie wartości zmiennej

Write-Output $wiek

# Przechowanie tekstu

$wiadomosc = „Witaj w PowerShell!”

# Wyświetlenie wiadomości

Write-Output $wiadomosc

5. Typy danych w PowerShellu

PowerShell obsługuje różne typy danych, takie jak liczby, tekst, tablice i hashtable (tablice asocjacyjne). Znajomość tych typów jest kluczowa do efektywnej pracy z PowerShellem.

• Liczby: całkowite, zmiennoprzecinkowe

• Tekst: ciągi znaków w cudzysłowach

• Tablice: kolekcje danych, np. $lista = @(1, 2, 3)

• Hashtable: kolekcje klucz-wartość, np. $pary = @{imie=„Jan”; wiek=25}

Przykład pracy z tablicą:

# Tworzenie tablicy

$kolory = @(„czerwony”, „zielony”, „niebieski”)

# Dostęp do elementów tablicy

$kolory[0] # czerwony

$kolory[1] # zielony

# Dodanie nowego elementu do tablicy

$kolory += „żółty”

6. Obsługa błędów

PowerShell umożliwia przechwytywanie i obsługę błędów, co jest szczególnie przydatne w przypadku automatyzacji. Dzięki temu możesz upewnić się, że skrypt będzie działał nawet w sytuacjach niespodziewanych błędów.

Przykład obsługi błędów za pomocą try-catch:

try {

# Próba otwarcia pliku

Get-Content -Path „C:\sciezka\do\plik. txt”

} catch {

# Obsługa błędu

Write-Output „Wystąpił błąd przy otwieraniu pliku: $_”

}

7. Korzystanie z aliasów

PowerShell wspiera aliasy, czyli skrócone nazwy komend, które pozwalają na szybsze wprowadzanie poleceń. Aliasem jest np. ls jako skrót dla Get-ChildItem.

Lista popularnych aliasów:

• ls — odpowiada Get-ChildItem

• cd — odpowiada Set-Location

• cp — odpowiada Copy-Item

• mv — odpowiada Move-Item

• rm — odpowiada Remove-Item

Przykład użycia aliasów:

# Użycie aliasów zamiast pełnych komend

ls # Wyświetlenie plików i folderów

cd.. # Przejście do katalogu nadrzędnego

8. Łączenie cmdletów i filtracja wyników

PowerShell umożliwia dokładne filtrowanie i selekcję danych poprzez łączenie cmdletów, takich jak Where-Object czy Select-Object. Filtracja ułatwia pracę z dużymi zbiorami danych, pozwalając na wybór tylko tych elementów, które są istotne.

Przykład filtracji:

# Wyświetlenie procesów, które zużywają więcej niż 100 MB pamięci

Get-Process | Where-Object {$_.WS -gt 100MB} | Select-Object ProcessName, WS

9. Korzystanie z Get-Help i dokumentacja

PowerShell posiada rozbudowaną dokumentację, którą można wyświetlić za pomocą cmdletu Get-Help. Dzięki Get-Help możesz szybko dowiedzieć się, jakie parametry oferuje dany cmdlet, oraz zobaczyć przykłady jego użycia.

Przykład użycia Get-Help:

# Wyświetlenie pomocy dla komendy Get-Process

Get-Help Get-Process

# Wyświetlenie przykładów dla komendy Get-Process

Get-Help Get-Process -Examples

10. Ćwiczenia praktyczne

Aby lepiej zrozumieć PowerShella, wykonaj poniższe ćwiczenia.

Ćwiczenie 1: Wyświetl wszystkie pliki w katalogu domowym, posortowane alfabetycznie.

Get-ChildItem -Path $HOME | Sort-Object -Property Name

Ćwiczenie 2: Znajdź wszystkie procesy działające na komputerze, które zużywają więcej niż 50 MB pamięci.

Get-Process | Where-Object {$_.WS -gt 50MB} | Select-Object ProcessName, WS

Ćwiczenie 3: Utwórz zmienną przechowującą Twoje imię, a następnie wyświetl komunikat „Witaj, [Twoje imię]!”.

$imie = „Jan”

Write-Output „Witaj, $imie!”

Podsumowanie

W tym rozdziale zapoznaliśmy się z podstawowymi zasadami pracy w PowerShellu, w tym z cmdletami, potokami, zmiennymi oraz obsługą błędów. Zrozumienie tych elementów pozwoli Ci na bardziej efektywne i świadome korzystanie z PowerShella w kolejnych rozdziałach.

Rozdział 3: Zmienne i struktury danych

PowerShell oferuje szeroką gamę typów zmiennych i struktur danych, które pozwalają na przechowywanie, organizowanie i przetwarzanie informacji w różnorodny sposób. Opanowanie zarządzania zmiennymi i strukturami danych jest kluczowe do skutecznego automatyzowania zadań oraz tworzenia bardziej zaawansowanych skryptów. W tym rozdziale omówimy podstawowe typy zmiennych, a także struktury danych, takie jak tablice, hashtable, oraz omówimy sposoby ich wykorzystania.

1. Wprowadzenie do zmiennych w PowerShellu

Zmienne w PowerShellu to elementy przechowujące wartości, które można później używać, manipulować nimi lub przekazywać do innych funkcji. Każda zmienna w PowerShellu jest poprzedzona znakiem $, co oznacza, że łatwo ją odróżnić od innych składników języka.

Przykład tworzenia zmiennej:

# Przypisanie wartości liczbowej do zmiennej

$wiek = 30

# Przypisanie tekstu do zmiennej

$imie = „Jan”

# Wyświetlenie wartości zmiennej

Write-Output $wiek

Write-Output $imie

PowerShell jest językiem dynamicznie typowanym, co oznacza, że nie musimy jawnie określać typu zmiennej — PowerShell sam rozpozna, czy jest to liczba, tekst, czy inny typ danych.

2. Podstawowe typy danych w PowerShellu

PowerShell obsługuje kilka podstawowych typów danych:

• Integer (liczba całkowita): Przechowuje liczby całkowite, np. 42

• Double (liczba zmiennoprzecinkowa): Przechowuje liczby zmiennoprzecinkowe, np. 3.14

• String (tekst): Przechowuje tekst, np. „Hello, World!”

• Boolean (wartość logiczna): Przechowuje wartość True lub False

Przykłady różnych typów danych:

# Liczba całkowita

$liczba = 10

# Liczba zmiennoprzecinkowa

$pi = 3.14159

# Tekst

$powitanie = „Cześć, PowerShell!”

# Wartość logiczna

$czyAktywny = $true

3. Operacje na zmiennych

Na zmiennych liczbowych można wykonywać standardowe operacje matematyczne, takie jak dodawanie, odejmowanie, mnożenie czy dzielenie.

Przykład operacji matematycznych:

$a = 5

$b = 3

# Dodawanie

$suma = $a + $b

# Mnożenie

$iloczyn = $a * $b

# Dzielenie

$iloraz = $a / $b

# Wyświetlenie wyników

Write-Output „Suma: $suma”

Write-Output „Iloczyn: $iloczyn”

Write-Output „Iloraz: $iloraz”

4. Tablice (Array)

Tablica to struktura danych, która pozwala na przechowywanie wielu wartości w jednej zmiennej. Tablice są użyteczne, gdy chcemy przechować zbiór podobnych elementów, takich jak liczby, nazwy czy inne dane.

Tworzenie tablicy:

# Tworzenie tablicy z liczbami

$liczby = @(1, 2, 3, 4, 5)

# Tworzenie tablicy z tekstami

$imiona = @(„Jan”, „Anna”, „Piotr”)

Dostęp do elementów tablicy:

# Wyświetlenie pierwszego elementu

Write-Output $liczby[0] # Wynik: 1

# Wyświetlenie drugiego elementu z tablicy imiona

Write-Output $imiona[1] # Wynik: Anna

5. Pętla foreach dla tablic

Za pomocą pętli foreach można łatwo iterować po elementach tablicy i wykonywać operacje na każdym z nich.

Przykład użycia foreach:

$kolory = @(„czerwony”, „zielony”, „niebieski”)

foreach ($kolor in $kolory) {

Write-Output „Kolor: $kolor”

}

6. Hashtable (tablica asocjacyjna)

Hashtable to struktura danych przechowująca pary klucz-wartość. Dzięki tej strukturze można łatwo przechowywać i wyszukiwać dane na podstawie unikalnych kluczy, co jest przydatne przy bardziej złożonych operacjach.

Tworzenie i używanie hashtable:

# Tworzenie hashtable

$osoba = @{

imie = „Jan”

wiek = 30

miasto = „Warszawa”

}

# Dostęp do wartości przez klucz

Write-Output $osoba[„imie”] # Wynik: Jan

Write-Output $osoba[„wiek”] # Wynik: 30

Write-Output $osoba[„miasto”] # Wynik: Warszawa

7. Operacje na hashtable

Możemy dodawać nowe klucze i wartości do hashtable, a także aktualizować istniejące wartości lub usuwać klucze.

Przykłady operacji na hashtable:

# Dodanie nowego klucza

$osoba[„kraj”] = „Polska”

# Aktualizacja istniejącej wartości

$osoba[„wiek”] = 31

# Usunięcie klucza

$osoba.Remove(„miasto”)

# Wyświetlenie hashtable

$osoba

8. Zagnieżdżone struktury danych

PowerShell umożliwia tworzenie zagnieżdżonych struktur danych, takich jak tablica hashtable lub hashtable zagnieżdżonych tablic. Umożliwia to przechowywanie bardziej skomplikowanych danych.

Przykład zagnieżdżonej struktury danych:

# Hashtable zawierająca tablice

$pracownik = @{

imie = „Anna”

dzialy = @(„IT”, „Marketing”, „Sprzedaż”)

}

# Dostęp do zagnieżdżonego elementu

Write-Output $pracownik[„dzialy”][1] # Wynik: Marketing

9. Zmienne automatyczne i predefiniowane

PowerShell zawiera również zestaw zmiennych automatycznych i predefiniowanych, które są domyślnie dostępne i mogą być pomocne podczas pracy z danymi.

• $PSVersionTable Zawiera informacje o wersji PowerShella

• $HOME Ścieżka do katalogu domowego użytkownika

• $PWD Bieżący katalog

• $True Stała logiczna reprezentująca prawdę

• $False Stała logiczna reprezentująca fałsz

Przykład użycia zmiennych automatycznych:

Write-Output „Wersja PowerShella: $($PSVersionTable.PSVersion)”

Write-Output „Katalog domowy: $HOME”

10. Konwersja typów danych

W PowerShellu można konwertować wartości na różne typy danych. Jest to szczególnie przydatne, gdy potrzebujesz mieć pewność, że dana wartość jest w odpowiednim formacie do wykonania określonej operacji.

Przykład konwersji typu danych:

$liczbaTekst = „123”

$liczba = [int]$liczbaTekst # Konwersja z tekstu na liczbę całkowitą

Write-Output ($liczba +10) # Wynik: 133

Podsumowanie

W tym rozdziale omówiliśmy podstawowe typy zmiennych i struktury danych w PowerShellu, takie jak liczby, teksty, tablice, hashtable, oraz operacje na nich. Posiadając tę wiedzę, możesz skutecznie zarządzać danymi i tworzyć bardziej zaawansowane skrypty, co jest kluczowym krokiem w automatyzacji zadań. W kolejnych rozdziałach nauczymy się, jak manipulować danymi za pomocą zaawansowanych cmdletów i technik.

Rozdział 4: Obsługa plików i systemu plików

PowerShell umożliwia łatwe zarządzanie plikami i systemem plików, co sprawia, że jest potężnym narzędziem do automatyzacji operacji związanych z plikami. W tym rozdziale omówimy, jak tworzyć, usuwać, przenosić, kopiować pliki i foldery, a także jak odczytywać i zapisywać dane w plikach. Dowiesz się również, jak efektywnie wyszukiwać pliki i katalogi, przetwarzać je oraz przeszukiwać ich zawartość.

1. Podstawowe cmdlety do obsługi plików

PowerShell oferuje kilka podstawowych cmdletów do zarządzania plikami i folderami. Oto najważniejsze z nich:

• Get-ChildItem Wyświetla zawartość katalogu

• New-Item Tworzy nowy plik lub folder

• Remove-Item Usuwa plik lub folder

• Copy-Item Kopiuje plik lub folder

• Move-Item Przenosi plik lub folder

• Set-Location Zmienia bieżący katalog

• Get-Content Odczytuje zawartość pliku

• Set-Content Zapisuje zawartość do pliku (nadpisując istniejącą)

• Add-Content Dodaje zawartość do istniejącego pliku

2. Tworzenie nowych plików i folderów

Cmdlet New-Item umożliwia tworzenie nowych plików i folderów. Przykład poniżej pokazuje, jak utworzyć pusty plik tekstowy oraz folder.

Tworzenie pliku i folderu:

# Tworzenie nowego pliku tekstowego

New-Item -Path „C:\Test” -Name „nowyplik. txt” -ItemType File

# Tworzenie nowego folderu

New-Item -Path „C:\" -Name „NowyFolder” -ItemType Directory

3. Przenoszenie i kopiowanie plików

Przenoszenie i kopiowanie plików oraz folderów w PowerShellu jest proste dzięki cmdletom Move-Item oraz Copy-Item.

Przenoszenie pliku:

# Przeniesienie pliku „nowyplik. txt” do folderu „NowyFolder”

Move-Item -Path „C:\Test\nowyplik. txt” -Destination „C:\NowyFolder”

Kopiowanie pliku:

# Skopiowanie pliku „nowyplik. txt” z „NowyFolder” do katalogu „Test”

Copy-Item -Path „C:\NowyFolder\nowyplik. txt” -Destination „C:\Test”

4. Usuwanie plików i folderów

Aby usunąć plik lub folder, można użyć cmdletu Remove-Item. Domyślnie PowerShell poprosi o potwierdzenie przed usunięciem folderu zawierającego inne elementy, aby uniknąć przypadkowego usunięcia danych.

Usuwanie pliku:

# Usunięcie pliku „nowyplik. txt”

Remove-Item -Path „C:\Test\nowyplik. txt”

Usuwanie folderu i wszystkich jego zawartości:

# Usunięcie folderu „NowyFolder” oraz jego zawartości bez potwierdzenia

Remove-Item -Path „C:\NowyFolder” -Recurse -Force

5. Praca z zawartością plików

PowerShell umożliwia łatwe odczytywanie i zapisywanie danych w plikach tekstowych za pomocą cmdletów Get-Content, Set-Content oraz Add-Content.

Odczytywanie zawartości pliku:

# Wyświetlenie zawartości pliku „przyklad. txt”

Get-Content -Path „C:\Test\przyklad. txt”

Zapis do pliku: Cmdlet Set-Content nadpisuje istniejącą zawartość pliku. Przykład poniżej zapisuje nową treść do pliku przyklad. txt.

# Zapisanie tekstu do pliku (nadpisuje istniejącą zawartość)

Set-Content -Path „C:\Test\przyklad. txt” -Value „To jest nowa zawartość pliku.”

Dodawanie treści do pliku: Cmdlet Add-Content dodaje nową linię do istniejącego pliku.

# Dodanie nowej linii do pliku

Add-Content -Path „C:\Test\przyklad. txt” -Value „To jest dodatkowa linia.”

6. Wyszukiwanie plików i folderów

PowerShell umożliwia wyszukiwanie plików i folderów według różnych kryteriów, np. nazwy, rozszerzenia, daty modyfikacji.

Wyszukiwanie plików o określonym rozszerzeniu:

# Znalezienie wszystkich plików. txt w katalogu Test

Get-ChildItem -Path „C:\Test” -Filter *.txt

Wyszukiwanie plików z określoną frazą w nazwie:

# Znalezienie wszystkich plików zawierających słowo „raport” w nazwie

Get-ChildItem -Path „C:\Test” -Filter *raport*

7. Filtracja wyników przy użyciu Where-Object

Koniec darmowego fragmentu książki.

Zachęcamy do zakupu pełnej wersji.