Skrypty PowerShell: Przewodnik krok po kroku dla początkujących, jak zautomatyzować zadania
Table of Contents
Skrypty PowerShell dla początkujących**
PowerShell to potężna powłoka wiersza poleceń i język skryptowy opracowany przez firmę Microsoft. Zapewnia on szeroką gamę poleceń i funkcji do zarządzania i automatyzacji różnych aspektów systemu operacyjnego Windows i innych technologii Microsoft. W tym artykule omówimy podstawy skryptów PowerShell dla początkujących i przedstawimy przewodnik krok po kroku, aby rozpocząć.
Wprowadzenie do PowerShell
PowerShell to powłoka wiersza poleceń, która umożliwia użytkownikom automatyzację i zarządzanie systemem operacyjnym Windows i innymi technologiami Microsoft. Zapewnia kompleksowy zestaw poleceń i funkcji, które umożliwiają użytkownikom wykonywanie różnych zadań administracyjnych, takich jak zarządzanie plikami i katalogami, konfiguracja sieci i zarządzanie systemem. PowerShell obsługuje również język skryptowy, który pozwala użytkownikom tworzyć złożone skrypty i automatyzować różne powtarzalne zadania.
Pierwsze kroki z PowerShell
Instalacja PowerShell
PowerShell jest preinstalowany w większości wersji systemu operacyjnego Windows. Jeśli jednak używasz starszej wersji Windows lub potrzebujesz nowszej wersji PowerShell, możesz pobrać ją ze strony Microsoft. Aby pobrać i zainstalować PowerShell, wykonaj następujące kroki:
- Przejdź do strony Microsoft PowerShell website i wybierz wersję PowerShell, którą chcesz zainstalować.
- Pobierz plik instalacyjny i uruchom go.
- Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby zakończyć proces instalacji.
Uruchamianie PowerShell
Po zainstalowaniu PowerShell można go uruchomić, wykonując następujące kroki:
- Kliknij menu Start i wpisz “PowerShell” w pasku wyszukiwania.
- Wybierz “Windows PowerShell” z wyników wyszukiwania.
- PowerShell otworzy się w nowym oknie.
Podstawy PowerShell
PowerShell zapewnia interfejs wiersza poleceń, który pozwala użytkownikom na interakcję z systemem operacyjnym. Polecenia w PowerShell nazywane są cmdletami i są zorganizowane w moduły. Aby wyświetlić listę dostępnych modułów, należy użyć polecenia Get-Module:
Get-Module
Aby wyświetlić listę dostępnych poleceń cmdlet w module, użyj polecenia Get-Command:
Get-Command -Module <module name>
Aby uzyskać pomoc dotyczącą polecenia cmdlet, użyj polecenia Get-Help:
Get-Help <cmdlet name>
PowerShell obsługuje również aliasy, które są krótszymi nazwami poleceń cmdlet. Aby wyświetlić listę dostępnych aliasów, należy użyć polecenia Get-Alias:
Get-Alias
Skrypty PowerShell
Skrypty PowerShell to potężna funkcja, która pozwala użytkownikom automatyzować różne zadania administracyjne. Skrypty PowerShell obsługują zmienne, pętle, instrukcje warunkowe i funkcje, co czyni je potężnym narzędziem do automatyzacji.
Zmienne
Zmienne są używane do przechowywania danych w skryptach PowerShell. Zmienne w PowerShell zaczynają się od znaku dolara ($). Aby przypisać wartość do zmiennej, należy użyć następującej składni:
$variable_name = value
Na przykład:
$name = "John"
Pętle
Pętle służą do powtarzania bloku kodu określoną liczbę razy. PowerShell obsługuje następujące typy pętli:
- For loop: powtarza blok kodu określoną liczbę razy.
- Pętla While: powtarza blok kodu tak długo, jak warunek jest prawdziwy.
- Pętla Do-While: powtarza blok kodu co najmniej raz, a następnie tak długo, jak warunek jest prawdziwy.
- orEach loop: powtarza blok kodu dla każdego elementu w kolekcji.
Na przykład, poniższy kod używa pętli For do wypisania liczb od 1 do 5:
for($i=1; $i -le 5; $i++) {
Write-Host $i
}
Instrukcje warunkowe
Stwierdzenia warunkowe
Instrukcje warunkowe służą do wykonywania bloku kodu, jeśli określony warunek jest prawdziwy. PowerShell obsługuje następujące typy instrukcji warunkowych:
- If statement: wykonuje blok kodu, jeśli warunek jest prawdziwy.
- If-Else statement: wykonuje jeden blok kodu, jeśli warunek jest prawdziwy i inny blok kodu, jeśli warunek jest fałszywy.
- Switch statement: porównuje wartość z zestawem możliwych dopasowań i wykonuje blok kodu dla pierwszego znalezionego dopasowania.
Na przykład poniższy kod używa instrukcji If do sprawdzenia, czy liczba jest większa niż 5:
$number = 10
if ($number -gt 5) {
Write-Host "The number is greater than 5"
}
Funkcje
Funkcje to bloki kodu wielokrotnego użytku, które wykonują określone zadanie. Funkcje przyjmują parametry wejściowe i zwracają wartości wyjściowe. PowerShell obsługuje następujące typy funkcji:
- Blok skryptu: blok kodu, który można wykonać.
- Funkcja zaawansowana**: funkcja zawierająca metadane i walidację parametrów.
Na przykład poniższy kod definiuje funkcję, która dodaje dwie liczby:
function Add-Numbers {
param (
[int]$num1,
[int]$num2
)
$result = $num1 + $num2
return $result
}
$result = Add-Numbers -num1 5 -num2 10
Write-Host "The result is $result"
PowerShell ISE
PowerShell ISE (Integrated Scripting Environment) to graficzny interfejs użytkownika dla skryptów PowerShell. PowerShell ISE zapewnia bogaty edytor tekstu, narzędzia do debugowania i inne funkcje, które ułatwiają pisanie i testowanie skryptów PowerShell. Aby otworzyć PowerShell ISE, wykonaj następujące kroki:
- Kliknij menu Start i wpisz “PowerShell ISE” w pasku wyszukiwania.
- Wybierz “Windows PowerShell ISE” z wyników wyszukiwania.
- PowerShell ISE otworzy się w nowym oknie.
Remoting PowerShell
PowerShell Remoting pozwala użytkownikom uruchamiać polecenia i skrypty PowerShell na zdalnych komputerach. PowerShell Remoting wymaga, aby usługa WinRM była uruchomiona zarówno na komputerze lokalnym, jak i zdalnym. Aby włączyć PowerShell Remoting, wykonaj następujące kroki:
- Otwórz wiersz polecenia PowerShell z uprawnieniami administratora.
- Uruchom następujące polecenie, aby włączyć funkcję PowerShell Remoting:
Enable-PSRemoting -Force
- Uruchom następujące polecenie, aby dodać komputer zdalny do listy TrustedHosts:
Set-Item wsman:\localhost\Client\TrustedHosts -Value <computer name> -Force
- Uruchom ponownie usługę WinRM
Restart-Service WinRM
Aby uruchomić polecenie PowerShell na zdalnym komputerze, użyj polecenia cmdlet Invoke-Command:
Invoke-Command -ComputerName <computer name> -ScriptBlock { <command> }
Moduły PowerShell
Moduły PowerShell to zbiory poleceń cmdlet, funkcji i skryptów zaprojektowanych do wykonywania określonych zadań. Moduły PowerShell można instalować i zarządzać nimi za pomocą galerii PowerShell, która jest centralnym repozytorium modułów PowerShell.
Aby zainstalować moduł PowerShell z galerii PowerShell, należy użyć następującego polecenia:
Install-Module <module name>
Aby wyświetlić listę zainstalowanych modułów PowerShell, użyj polecenia Get-InstalledModule:
Get-InstalledModule
Najlepsze praktyki dla skryptów PowerShell
Podczas pisania skryptów PowerShell ważne jest, aby przestrzegać najlepszych praktyk w celu zapewnienia, że skrypty są bezpieczne, niezawodne i możliwe do utrzymania. Oto kilka najlepszych praktyk, o których należy pamiętać:
- Używaj opisowych nazw zmiennych: Używaj nazw zmiennych, które jasno wskazują ich cel.
- Używaj komentarzy**: Używaj komentarzy, aby wyjaśnić cel kodu.
- Używaj obsługi błędów: Używaj obsługi błędów, aby z wdziękiem obsługiwać błędy i wyjątki. The
Try...Catch...Finally
w PowerShell umożliwia obsługę wyjątków i podejmowanie odpowiednich działań. Microsoft Documentation - Dokładne testowanie skryptów: Dokładnie testuj skrypty, aby upewnić się, że działają zgodnie z oczekiwaniami. Możesz użyć Pester, frameworka testowego dla PowerShell, aby napisać i uruchomić testy jednostkowe dla swoich skryptów. Pester Documentation
- Używaj funkcji i modułów: Używaj funkcji i modułów do organizowania kodu i poprawy możliwości jego ponownego wykorzystania. Funkcje pozwalają podzielić kod na mniejsze, łatwe w zarządzaniu fragmenty, podczas gdy moduły zapewniają sposób na pakowanie i dystrybucję kodu. About Functions , About Modules
- Unikaj twardego kodowania wartości: Unikaj twardego kodowania wartości w skrypcie i zamiast tego używaj parametrów lub zmiennych. Sprawia to, że skrypty są bardziej elastyczne i wielokrotnego użytku. Parametry można przekazywać do skryptów za pomocą funkcji
param
słowo kluczowe. Microsoft Documentation - Użyj pełnych danych wyjściowych: Użyj pełnego wyjścia, aby dostarczyć dodatkowych informacji o postępie skryptu. Można użyć opcji
Write-Verbose
aby wyświetlać szczegółowe komunikaty podczas wykonywania skryptu. Microsoft Documentation
Przestrzeganie tych najlepszych praktyk pomoże ci pisać bardziej wydajne i łatwe w utrzymaniu skrypty PowerShell, zwiększając twoją produktywność i zapewniając stabilność zadań automatyzacji.
Opracowanie najlepszych praktyk dla skryptów PowerShell
Używaj obsługi błędów
Obsługa błędów jest krytycznym aspektem skryptów PowerShell, ponieważ zapewnia, że skrypt z wdziękiem obsługuje błędy i wyjątki. PowerShell zapewnia kilka sposobów obsługi błędów, w tym instrukcję Try-Catch, instrukcję Trap i parametr ErrorAction. Instrukcja Try-Catch służy do wychwytywania i obsługi wyjątków, natomiast instrukcja Trap służy do wychwytywania i obsługi błędów. Parametr ErrorAction służy do kontrolowania sposobu obsługi błędów przez skrypt.
Oto przykład użycia instrukcji Try-Catch do sprawnej obsługi błędu:
try {
# some code that might throw an error
}
catch {
Write-Error "An error occurred: $_"
}
Skrypty testowe dokładnie
Testowanie skryptów PowerShell jest niezbędne, aby upewnić się, że działają one zgodnie z oczekiwaniami. PowerShell udostępnia kilka narzędzi testowych i frameworków, takich jak Pester, które umożliwiają użytkownikom pisanie i wykonywanie testów skryptów. Narzędzia te pomagają zidentyfikować i wyizolować błędy w kodzie oraz upewnić się, że skrypt spełnia pożądane wymagania.
Oto przykład użycia Pester do testowania skryptu PowerShell:
Describe "My PowerShell Script" {
It "Does something" {
# some code that should return the expected result
$result = Do-Something
$result | Should -Be "expected result"
}
}
Używanie funkcji i modułów
Funkcje i moduły są niezbędne do organizowania kodu i poprawy możliwości jego ponownego wykorzystania w skryptach PowerShell. Funkcje umożliwiają użytkownikom grupowanie kodu w bloki wielokrotnego użytku, podczas gdy moduły umożliwiają użytkownikom pakowanie i udostępnianie kodu innym. Korzystając z funkcji i modułów, skrypty PowerShell mogą być bardziej modułowe, wydajne i łatwe w utrzymaniu.
Oto przykład użycia funkcji w PowerShell:
function Get-ProcessCount {
$processes = Get-Process
$count = $processes.Count
return $count
}
$count = Get-ProcessCount
Write-Host "There are $count processes running."
Unikaj twardego kodowania wartości
Zakodowane na stałe wartości w skrypcie PowerShell sprawiają, że jest on mniej elastyczny i trudniejszy w utrzymaniu. Zamiast zakodowanych na stałe wartości, najlepiej jest używać parametrów lub zmiennych, które umożliwiają użytkownikom przekazywanie wartości do skryptu w czasie wykonywania. Używając parametrów lub zmiennych, skrypt może być bardziej wielokrotnego użytku i dostosowany do zmieniających się warunków.
Oto przykład użycia parametru w PowerShell:
param (
[string]$name
)
Write-Host "Hello, $name!"
Korzystanie z pełnych danych wyjściowych
Pełne dane wyjściowe dostarczają dodatkowych informacji o postępie skryptu, co może być przydatne do debugowania i rozwiązywania problemów. PowerShell udostępnia cmdlet Write-Verbose, który umożliwia użytkownikom wysyłanie pełnych informacji do konsoli. Korzystając z pełnych danych wyjściowych, skrypty PowerShell mogą być bardziej pouczające i łatwiejsze do debugowania.
Oto przykład użycia pełnych danych wyjściowych w PowerShell:
function Get-ProcessCount {
Write-Verbose "Getting processes..."
$processes = Get-Process
$count = $processes.Count
return $count
}
$count = Get-ProcessCount -Verbose
Write-Host "There are $count processes running."
Dziesięć pomysłów na skrypty PowerShell dla początkujących
Jeśli jesteś początkującym użytkownikiem skryptów PowerShell, oto dziesięć pomysłów na skrypty, które pomogą ci zacząć:
-
Automatyczne kopie zapasowe: Utwórz skrypt, który zautomatyzuje proces tworzenia kopii zapasowych ważnych plików i katalogów na zewnętrznym dysku twardym lub w chmurze. Możesz użyć
Copy-Item
cmdlet do kopiowania plików iStart-Job
aby uruchomić proces tworzenia kopii zapasowej w tle. Microsoft Documentation -
Zarządzanie plikami: Utwórz skrypt, który organizuje pliki i katalogi, sortując je w różnych folderach na podstawie typu pliku, rozmiaru lub innych kryteriów. Można użyć funkcji
Get-ChildItem
cmdlet do pobierania plików i polecenieMove-Item
cmdlet, aby przenieść je do wybranej lokalizacji. Microsoft Documentation , Microsoft Documentation -
Informacje systemowe: Utwórz skrypt, który pobiera informacje systemowe, takie jak użycie procesora i pamięci, miejsce na dysku i ustawienia sieciowe, i wyświetla je w łatwym do odczytania formacie. Możesz użyć
Get-WmiObject
cmdlet do zbierania informacji systemowych i formatowania ich przy użyciuFormat-Table
lubOut-GridView
Microsoft Documentation -
Zarządzanie użytkownikami: Utwórz skrypt automatyzujący proces dodawania, modyfikowania lub usuwania użytkowników i grup w systemie operacyjnym Windows. Można użyć
New-LocalUser
Set-LocalUser
orazRemove-LocalUser
do zarządzania użytkownikami, orazNew-LocalGroup
Add-LocalGroupMember
orazRemove-LocalGroup
do zarządzania grupami. Microsoft Documentation , Microsoft Documentation -
Instalacja oprogramowania: Utwórz skrypt, który instaluje i konfiguruje oprogramowanie na wielu komputerach jednocześnie, oszczędzając czas i wysiłek. Możesz użyć
Invoke-Command
do wykonywania poleceń instalacyjnych na komputerach zdalnych. Microsoft Documentation -
Konfiguracja sieci: Utwórz skrypt automatyzujący proces konfiguracji ustawień sieciowych, takich jak adres IP, maska podsieci i brama domyślna. Można użyć
Set-NetIPAddress
Set-NetIPInterface
orazSet-DnsClientServerAddress
aby skonfigurować ustawienia sieciowe. Microsoft Documentation , Microsoft Documentation , Microsoft Documentation -
Bezpieczeństwo: Utwórz skrypt, który przeprowadza audyt i monitoruje ustawienia zabezpieczeń oraz ostrzega użytkownika w przypadku wykrycia jakichkolwiek zmian. Można użyć funkcji
Get-AuditPolicy
cmdlet w celu pobrania zasad audytu iSend-MailMessage
cmdlet do wysyłania powiadomień e-mail. Microsoft Documentation , Microsoft Documentation -
Planowanie zadań: Utwórz skrypt, który zaplanuje i zautomatyzuje powtarzające się zadania, takie jak kopie zapasowe, aktualizacje i skanowanie systemu. Możesz użyć funkcji
Register-ScheduledTask
cmdlet do tworzenia zaplanowanych zadań orazStart-ScheduledTask
cmdlet, aby je wykonać. Microsoft Documentation , Microsoft Documentation -
Manipulacja rejestrem: Tworzenie skryptu, który modyfikuje lub pobiera wartości rejestru dla określonych kluczy lub wartości. Można użyć funkcji
Get-ItemProperty
iSet-ItemProperty
do interakcji z rejestrem. Microsoft Documentation , Microsoft Documentation -
Zdalna administracja**: Utwórz skrypt, który umożliwia zdalną administrację komputerami z systemem Windows, pozwalając użytkownikom na wykonywanie poleceń i skryptów na zdalnych maszynach. Można użyć funkcji
Enter-PSSession
cmdlet lubInvoke-Command
do uruchamiania poleceń na komputerach zdalnych. Microsoft Documentation , Microsoft Documentation
Zacznij odkrywać te pomysły na skrypty, aby zdobyć praktyczne doświadczenie i rozwinąć swoje umiejętności PowerShell.
Wnioski
PowerShell to potężne narzędzie do zarządzania i automatyzacji systemu operacyjnego Windows i innych technologii Microsoft. W tym artykule omówiliśmy podstawy tworzenia skryptów PowerShell dla początkujących, w tym instalację i uruchamianie PowerShell, korzystanie z poleceń cmdlet, zmiennych, pętli, instrukcji warunkowych i funkcji oraz korzystanie z PowerShell ISE, PowerShell Remoting i modułów PowerShell. Przestrzegając najlepszych praktyk, skrypty PowerShell mogą być bezpieczne, niezawodne i łatwe w utrzymaniu. Dzięki praktyce można stać się biegłym w skryptach PowerShell i z łatwością automatyzować różne zadania administracyjne.