
PowerShell jest powszechnie uznawany za niezbędne narzędzie dla administratorów IT, którzy koncentrują się na skryptach i automatyzacji. Jednak jego rozbudowane możliwości wykraczają daleko poza sektor IT, co czyni go nieocenionym dla każdego, kto zmaga się z nieuporządkowanymi plikami i katalogami. Osobiście wykorzystuję polecenia PowerShell do przeszukiwania przestarzałego kodu, strukturyzowania plików klienta i łagodzenia bałaganu, który narasta po miesiącach dynamicznych, terminowych projektów.
Jako potężna powłoka wiersza poleceń i platforma skryptowa, PowerShell upraszcza wiele zadań. Chociaż wcześniejsze wersje systemu Windows oferowały samodzielną aplikację PowerShell, obecnie użytkownicy preferują Terminal Windows do uruchamiania środowisk powłoki – w tym PowerShell i wiersza poleceń – ze względu na jego wszechstronność i nowoczesny interfejs.
Wszystkie polecenia można wykonać zarówno w dedykowanej aplikacji PowerShell, jak i w terminalu Windows. Aby zacząć z nich korzystać, wystarczy otworzyć kartę PowerShell w terminalu Windows.
1.Uzyskaj pomoc

Kiedy po raz pierwszy zapoznałem się z PowerShellem za pomocą samouczków na YouTube, jednym z często polecanych przez użytkowników poleceń było Get-Help. Polecenie to pełni funkcję wprowadzającą, umożliwiając dostęp do szczegółowych informacji o dowolnym poleceniu cmdlet programu PowerShell wraz z jego składnią, parametrami i przykładami użycia.
Aby pobrać szczegółowe informacje na temat polecenia, wpisz:
Get-Help Get-Process
Spowoduje to wyświetlenie streszczenia polecenia, szczegółów składni i parametrów wejściowych. Aby uzyskać więcej informacji, dodaj parametr -Examples :
Get-Help Get-Process -Examples
Co więcej, możesz zapoznać się z oficjalną dokumentacją firmy Microsoft, korzystając z przełącznika -Online :
Get-Help Get-Process -Online
To polecenie przekieruje Cię do witryny internetowej firmy Microsoft, w której znajdziesz kompleksową dokumentację poleceń.
2.Pobierz polecenie

Podczas gdy Get-Help koncentruje się na dostarczaniu informacji o poleceniach cmdlet, Get-Command jest niezbędny do lokalizowania i wyświetlania wszystkich dostępnych poleceń. Jeśli znasz funkcję, którą chcesz wykonać, ale nie pamiętasz nazwy polecenia, po prostu użyj Get-Command, aby wyszukać polecenia na podstawie części nazw lub wzorców.
Na przykład, aby znaleźć wszystkie polecenia zawierające słowo process, wpisz:
Get-Command *process*
To polecenie wyświetla wszystkie polecenia zawierające w nazwie słowo „process”.Możesz dodatkowo zawęzić wyszukiwanie według typów poleceń, np.jeśli interesują Cię tylko polecenia cmdlet:
Get-Command -Name Get* -CommandType Cmdlet
Dodatkowo, w przypadku wyszukiwań dotyczących konkretnych modułów, np.tych związanych z sieciami:
Get-Command -Module NetTCPIP
Korzystanie z polecenia Get-Command jest znacznie wydajniejsze niż przeszukiwanie sieci w celu znalezienia nazw poleceń.
3.Połączenie testowe

Czy często przełączasz się między różnymi narzędziami, takimi jak ping, telnet i traceroute? Polecenie cmdlet Test-NetConnection konsoliduje te funkcje w jedną. To polecenie cmdlet jest kluczowe przy rozwiązywaniu problemów sieciowych, ponieważ pomaga zdiagnozować, czy problem leży po stronie sieci, serwera, czy też innych źródeł.
Aby sprawdzić, czy dana strona internetowa jest dostępna, wykonaj polecenie:
Test-NetConnection makeuseof.com
To polecenie dostarcza wyniki pingowania i podstawowe informacje o łączności. Aby przetestować konkretny port, należy wpisać jego numer do polecenia:
Test-NetConnection server.company.com -Port 443
Aby uzyskać szczegółowe informacje na temat śledzenia ścieżki sieciowej, użyj parametru -TraceRoute :
Test-NetConnection 8.8.8.8 -TraceRoute
To polecenie wysyła pakiety testowe do 8.8.8.8, śledząc jednocześnie przeskoki między komputerem użytkownika a miejscem docelowym, co pomaga w zlokalizowaniu wszelkich problemów z połączeniem.
4.Pobierz-element podrzędny

Polecenie cmdlet Get-ChildItem umożliwia przeglądanie plików i folderów w dowolnym określonym katalogu. Na przykład, aby wyświetlić zawartość folderu Dokumenty, wystarczy wpisać:
Get-ChildItem C:\Users\Username\Documents
Aby zidentyfikować pliki PDF zmodyfikowane w ciągu ostatniego tygodnia, użyj następującego polecenia:
Get-ChildItem C:\Users\YourName\Documents -Filter *.pdf | Where-Object {$_. LastWriteTime -gt (Get-Date).AddDays(-7)}
Parametr -Recurse umożliwia przeszukiwanie wszystkich podfolderów. Aby zlokalizować wszystkie pliki dziennika w folderze „Projekty” i jego podkatalogach:
Get-ChildItem C:\Projects -Recurse -Filter *.log
Jeśli na dysku jest mało miejsca, można zidentyfikować duże pliki przekraczające 1 GB:
Get-ChildItem C:\ -Recurse -File | Where-Object {$_. Length -gt 1GB} | Select-Object FullName, @{Name="SizeGB";Expression={$_. Length/1GB}}
Polecenie cmdlet Get-ChildItem to potężne narzędzie do automatyzacji zadań wsadowych, organizacji plików i audytów.
5.Gdzie-Obiekt

W poprzednim przykładzie użycie Where-Object uwydatnia jego funkcjonalność w filtrowaniu danych na podstawie określonych kryteriów właściwości – działając podobnie do instrukcji warunkowych w programowaniu. Składnia wewnątrz nawiasów klamrowych pozwala na reprezentację każdego elementu poddawanego ocenie.
Aby zwizualizować wszystkie uruchomione usługi, wprowadź następujące dane:
Get-Service | Where-Object {$_. Status -eq "Running"}
Jeśli interesują Cię procesy zużywające więcej niż 100 MB pamięci, wypróbuj:
Get-Process | Where-Object {$_. WorkingSet -gt 100MB}
Możliwe jest również łączenie wielu warunków. Na przykład, aby zlokalizować duże dokumenty Worda zmodyfikowane w ciągu ostatniego miesiąca:
Get-ChildItem -Filter *.docx | Where-Object {$_. Length -gt 5MB -and $_. LastWriteTime -gt (Get-Date).AddMonths(-1)}
Organizuj złożone warunki w wielu wierszach, aby zwiększyć czytelność skryptu:
Get-ChildItem | Where-Object { $_. Length -gt 1MB -and $_. Extension -eq ".log"}
6.Wybierz obiekt

Często dane wyjściowe poleceń są bardziej rozbudowane niż to konieczne. Polecenie cmdlet Select-Object pozwala filtrować tylko istotne dane, które następnie można wyeksportować do pliku CSV za pomocą polecenia cmdlet Export-Csv. Na przykład, jeśli chcesz wyświetlić tylko nazwy i statusy usług:
Get-Service | Select-Object Name, Status
Jeśli Twoim celem jest zidentyfikowanie pięciu procesów zużywających najwięcej zasobów procesora, wykonaj:
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5 Name, CPU
Dodatkowo możesz tworzyć właściwości obliczeniowe. Aby wyświetlić rozmiary plików w megabajtach zamiast bajtów:
Get-ChildItem | Select-Object Name, @{Name="SizeMB";Expression={$_. Length/1MB}}
Aby wyodrębnić pojedynczą wartość właściwości, użyj parametru -ExpandProperty :
Get-Process notepad | Select-Object -ExpandProperty Id
To polecenie zwraca wyłącznie identyfikator procesu, co może być szczególnie przydatne przy przekazywaniu danych do dodatkowych poleceń wymagających pojedynczej wartości.
7.Zostań członkiem

PowerShell działa głównie za pomocą obiektów, a polecenie cmdlet Get-Member ujawnia powiązane z nimi właściwości i metody. Na przykład, pobierając informacje o procesie, można sprawdzić jego rozmiar, datę utworzenia i inne metryki. Użyj poniższego polecenia, aby wyświetlić atrybuty w obiekcie procesu:
Get-Process | Get-Member
Wyświetlone zostaną właściwości takie jak CPU, Id i WorkingSet, a także metody takie jak Kill() i Refresh().Jeśli chcesz wyświetlić tylko właściwości, możesz określić:
Get-Process | Get-Member -MemberType Property
W przypadku operacji związanych z plikami:
Get-ChildItem C:\temp\test.txt | Get-Member
Wyświetla szczegóły takie jak Długość i Czas zapisu (LastWriteTime), a także metody takie jak Delete() i MoveTo().Możesz filtrować pliki według rozmiaru za pomocą Długość lub identyfikować ostatnio modyfikowane pliki na podstawie Czasu zapisu (LastWriteTime).
8.Ustaw schowek i Pobierz schowek

Jeśli kiedykolwiek napotkasz przytłaczający wynik działania programu PowerShell wymagający skopiowania, ręczne zaznaczenie może być uciążliwe. Jednak polecenia Set-Clipboard i Get-Clipboard znacznie usprawniają ten proces.
Aby skopiować wyniki polecenia do schowka, wprowadź:
Get-Process | Select-Object Name, CPU | Set-Clipboard
Dzięki temu możesz z łatwością wkleić wyniki do programu Excel lub dowolnego edytora tekstu. I odwrotnie, aby pobrać zawartość schowka z powrotem do programu PowerShell, wystarczy uruchomić:
$text = Get-Clipboard
Ta funkcja jest szczególnie przydatna podczas przetwarzania list. Na przykład, możesz skopiować zakres nazw komputerów z Excela i następnie wykonać:
Get-Clipboard | ForEach-Object { Test-NetConnection $_ }
To polecenie testuje łączność z każdą wymienioną nazwą komputera. Płynna integracja między programem PowerShell a innymi aplikacjami znacznie przyspiesza wykonywanie powtarzalnych zadań.
9.Widok siatki zewnętrznej

Są momenty, w których interaktywne sortowanie i filtrowanie wyników jest konieczne. Polecenie cmdlet Out-GridView otwiera osobne okno z tabelą z możliwością sortowania i przeszukiwania.
Get-Process | Out-GridView
Ta akcja uruchamia nowe okno z listą bieżących procesów w interfejsie siatki. Kliknij nagłówki kolumn, aby posortować, lub filtruj według słów kluczowych w polu wyszukiwania. Aby wybrać elementy z siatki i przekazać je do innego polecenia, użyj:
Get-Service | Out-GridView -PassThru | Restart-Service
Za pomocą parametru -PassThru możesz zaznaczyć wiele wierszy i wykonać działania, takie jak ponowne uruchomienie tylko wybranych usług.
Do analizy dzienników można również zastosować:
Get-EventLog -LogName Application -Newest 1000 | Out-GridView
Umożliwia to szybkie filtrowanie zdarzeń na podstawie wprowadzanych słów kluczowych, sortowanie według czasu i ujawnianie wzorców w zestawie danych.
10.Pobierz proces

Polecenie cmdlet Get-Process wyświetla wszystkie aplikacje aktualnie uruchomione na komputerze, dostarczając informacji na temat wykorzystania przez nie pamięci, czasu procesora i identyfikatorów procesów.
Aby wyświetlić listę wszystkich aktualnie aktywnych procesów, wykonaj:
Get-Process
Jeśli szukasz konkretnej aplikacji, np. Google Chrome, po prostu podaj:
Get-Process chrome
Jeśli chcesz zamknąć program, który nie odpowiada, możesz połączyć polecenia w następujący sposób:
Get-Process notepad | Stop-Process
Aby zidentyfikować procesy zużywające znaczne zasoby pamięci, należy wdrożyć:
Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10
To polecenie umożliwia szybki przegląd programów zużywających dużo pamięci, gdy wydajność systemu spada.
Dodaj komentarz