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

1. Szybki Start! PowerShell w moment

2. Rozdział 1: Wprowadzenie do PowerShella

1. 1. Historia PowerShella

2. 2. PowerShell vs. Inne Języki Skryptowe

3. 3. Instalacja i Konfiguracja

4. 3.1 Instalacja PowerShell na Windows

5. 3.2 Instalacja PowerShell na macOS

6. 3.3 Instalacja PowerShell na Linuxie

7. 4. Uruchamianie PowerShella

8. 5. Cmdlety

9. 6. Pipeline (Potoki)

10. 7. Praca z Obiektami

11. 8. Korzystanie z Pomocy

12. Podsumowanie

3. Rozdział 2: Pierwsze kroki w PowerShellu

1. 1. Podstawowa struktura komend

2. 2. Korzystanie z cmdletów

3. 3. Potoki (Pipeline)

4. 4. Zmienne w PowerShellu

5. 5. Typy danych w PowerShellu

6. 6. Obsługa błędów

7. 7. Korzystanie z aliasów

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

9. 9. Korzystanie z Get-Help i dokumentacja

10. 10. Ćwiczenia praktyczne

11. Podsumowanie

4. Rozdział 3: Zmienne i struktury danych

1. 1. Wprowadzenie do zmiennych w PowerShellu

2. 2. Podstawowe typy danych w PowerShellu

3. 3. Operacje na zmiennych

4. 4. Tablice (Array)

5. 5. Pętla foreach dla tablic

6. 6. Hashtable (tablica asocjacyjna)

7. 7. Operacje na hashtable

8. 8. Zagnieżdżone struktury danych

9. 9. Zmienne automatyczne i predefiniowane

10. 10. Konwersja typów danych

11. Podsumowanie

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

1. 1. Podstawowe cmdlety do obsługi plików

2. 2. Tworzenie nowych plików i folderów

3. 3. Przenoszenie i kopiowanie plików

4. 4. Usuwanie plików i folderów

5. 5. Praca z zawartością plików

6. 6. Wyszukiwanie plików i folderów

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

8. 8. Rekurencyjne przeszukiwanie katalogów

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

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

11. 11. Ćwiczenia praktyczne

12. Podsumowanie

6. Rozdział 5: Tworzenie skryptów w PowerShellu

1. 1. Co to jest skrypt PowerShell?

2. 2. Pierwszy skrypt PowerShell

3. 3. Ustawienia uruchamiania skryptów (Execution Policy)

4. 4. Zmienne i operacje na nich

5. 5. Instrukcje warunkowe (if-else)

6. 6. Pętle w PowerShellu

7. 7. Funkcje

8. 8. Parametry skryptu

9. 9. Obsługa błędów

10. 10. Komentarze w skryptach

11. 11. Praktyczne przykłady

12. Podsumowanie

7. Rozdział 6: Funkcje i moduły

1. 1. Funkcje w PowerShell

2. 2. Moduły w PowerShell

3. 3. Organizowanie kodu za pomocą modułów

4. Podsumowanie

8. Rozdział 7: Praca z obiektami i WMI

1. 1. Co to jest obiekt?

2. 2. Windows Management Instrumentation (WMI)

3. 3. Praca z WMI na zdalnych komputerach

4. 4. Filtracja i przetwarzanie danych WMI

5. 5. Formatowanie wyników

6. Podsumowanie

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

1. 1. Zarządzanie procesami

2. 2. Zarządzanie usługami

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

4. Podsumowanie

10. Rozdział 9: Interakcja z rejestrem Windows

1. 1. Struktura rejestru Windows

2. 2. Odczyt wartości z rejestru

3. 3. Tworzenie i modyfikowanie kluczy i wartości rejestru

4. 4. Zabezpieczenia i uprawnienia rejestru

5. 5. Zdalna praca z rejestrem

6. Podsumowanie

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

1. 1. PowerShell Remoting

2. 2. Zarządzanie konfiguracją sieciową

3. 3. Praca z komputerami zdalnymi za pomocą WinRM

4. 4. Zarządzanie komputerami zdalnymi za pomocą PSSession

5. 5. Monitorowanie stanu sieci

6. Podsumowanie

12. Rozdział 11: Bezpieczeństwo i uprawnienia w PowerShellu

1. 1. Polityki wykonania skryptów (Execution Policies)

2. 2. Uwierzytelnianie i autoryzacja

3. 3. Uprawnienia użytkowników i grup

4. 4. Audyt i logowanie

5. 5. Szyfrowanie w PowerShellu

6. Podsumowanie

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

1. 1. Rodzaje błędów w PowerShellu

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

3. 3. Blok Try / Catch / Finally

4. 4. Obsługa specyficznych wyjątków

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

6. Podsumowanie

14. Rozdział 13: Automatyzacja zadań systemowych w PowerShellu

1. 1. Automatyzacja zadań z harmonogramem zadań Windows

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

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

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

5. 5. Przykład kompleksowej automatyzacji

6. Podsumowanie

15. Rozdział 14: Zaawansowane funkcje PowerShella

1. 1. Manipulowanie obiektami w PowerShellu

2. 2. Wyrażenia regularne w PowerShellu

3. 3. Zaawansowane funkcje w PowerShellu

4. 4. Praca z API i bazami danych

5. Podsumowanie

16. 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.