Czy kiedykolwiek zastanawiałeś się, jak uprościć swoje codzienne zadania w pracy z systemem Windows? A może chciałbyś spróbować szczypty automatyzacji, ale nie wiesz, od czego zacząć? Odpowiedź na te pytania i wiele więcej znajduje się w książce “PowerShell - 101 zadań do zautomatyzowania”.

Co to jest PowerShell?

 

PowerShell to narzędzie stworzone przez Microsoft, które jest niezwykle użyteczne w zarządzaniu środowiskiem IT. Jego prosty i intuicyjny język skryptowy sprawia, że jest łatwy do nauczenia, a jednocześnie prawie nieograniczony w swoich możliwościach. Jest to wręcz idealne rozwiązanie dla administratorów i inżynierów systemów, programistów, DevOpsów, analityków oraz sieciowców. Znajomość tej technologii stanowi jedno z podstawowych wymagań w ofertach pracy dla administratorów Windows. W związku z tym, nauka PowerShell jest inwestycją, która z pewnością opłaci się każdemu specjaliście  IT.

 

Automatyzacja w branży IT

 

Automatyzacja to pojęcie, które może dotyczyć wielu różnych branży. W świecie IT sprowadza się do wykorzystania technologii do przeprowadzania powtarzalnych procesów, minimalizując lub całkowicie eliminując udział człowieka. Przez co jej wykorzystanie nie tylko przyspiesza samo wykonywanie procesów, ale także znacznie redukuje liczbę błędów.

 

Przykładowo w przypadku zarządzania siecią, automatyzacja może obejmować skrypty, które monitorują ruch sieciowy i automatycznie dostosowują przepustowość w odpowiedzi na wzrost lub spadek ruchu. W przypadku zarządzania danymi automatyzacja może obejmować systemy, które regularnie tworzą kopie zapasowe danych i przechowują je w bezpiecznym miejscu.

 

Obecnie rozwój technologii wirtualizacji sieci i usług w chmurze sprawił, że automatyzacja stała się kluczowym elementem wspierającym zespoły IT. Kiedy jest prawidłowo wdrożona, zwalnia personel IT od monotonnych i powtarzalnych zadań, takich jak instalacja czy aktualizacja oprogramowania, umożliwiając im skupienie się na bardziej produktywnych zadaniach.

 

Automatyzacja stała się również kluczowym elementem transformacji cyfrowej. Organizacje na całym świecie wykorzystują ją do przyspieszenia swoich procesów, zwiększenia efektywności i poprawy jakości usług. Dzięki temu są w stanie lepiej konkurować na rynku i dostarczać wartość dla swoich klientów.

 

Mimo że definicja automatyzacji może wydawać się niezrozumiała, a samo wykorzystanie skomplikowane, to proste przejawy automatyzacji są nam dobrze znane i towarzyszą na co dzień. Przykładowo, mogą to być stałe zlecenia w banku czy powiadomienia z kalendarza w Twoim telefonie. Jeżeli nadal masz wątpliwości, sprawdź harmonogram zadań na swoim komputerze, założę się, że będziesz zaskoczony. Te proste przykłady doskonale ilustrują, jak w naszym codziennym życiu powszechna jest automatyzacja.

 

Jak zacząć?

 

„Naucz się chodzić, zanim zaczniesz biegać” to popularne powiedzenie można odnieść do wielu aspektów z życia. Podobnie sprawa wygląda z nauką automatyzacji. Zanim zaczniesz pracować z zaawansowanymi narzędziami i automatyzować całe środowiska, warto zrozumieć podstawy.

 

Najlepszym sposobem na zrobienie pierwszego korku jest znalezienie mało skomplikowanych zadań, które często wykonujesz i próba zautomatyzowania ich przy wykorzystaniu dostępnych narzędzi. Przykładem takiego prostego zadania może być zwyczajne kopiowanie plików, sprawdzenie statusu wybranych serwisów czy wyszukiwanie konkretnych danych na dysku.

 

Jeżeli w dalszym ciągu masz problem z wyborem zadań lub wybrałeś zadania, ale nie wiesz, jak się za to wszystko zabrać to mam coś specjalnie dla Ciebie. W mojej książce „PowerShell: 101 zadań do zautomatyzowania” zebrałem i opisałem dokładnie 101 zadań, które mogą się przydać każdemu administratorowi Windows w codziennej pracy. Mogą być również dla Ciebie źródłem inspiracji, a zarazem pierwszym krokiem w stronę ekscytującego świata automatyzacji.

 

Co znajdziesz w książce?

 

  1. Krótki opis esencji automatyzacji: Ten rozdział oferuje wgląd w istotę automatyzacji, wykraczając poza podstawową definicję. Znajdziesz tu nie tylko zalety i wady automatyzacji, ale także teoretyczne podejście do procesu - jakie zadania są najlepsze do automatyzacji i jak przygotować się do całego procesu. Przedstawiam również narzędzia dostępne domyślnie w systemie Windows.
  2. Małe wprowadzenie w świat PowerShella: Ten rozdział jest dedykowany dla osób, które nie miały wcześniej do czynienia z PowerShellem. Zawiera podstawowe informacje o narzędziu, krótką historię jego powstania oraz omówienie najważniejszych cech, które wyróżniają PowerShell na tle innych narzędzi.
  3. 101 prostych poleceń, które rozwiązują skomplikowane problemy: Głównym celem tej książki jest zaprezentowanie 101 zadań, które na co dzień napotyka każdy administrator systemu Windows. Zadania te zostały podzielone tematycznie na siedem różnych domen. Wśród nich znajdziesz zadania dotyczące wyszukiwania plików, konfiguracji maszyn wirtualnych czy tworzenia grup zasobów na platformie Azure. Każde z nich zostało szczegółowo omówione i zilustrowane przykładami.

 

Kilka przykładów

 

Aby nie być gołosłownym, poniżej zamieszczam kilka przykładów z książki.

 

Wyszukiwanie pustych katalogów:

Get-ChildItem -Recurse -Directory | Where-Object {$_.GetFiles().Count -eq 0 -and $_.GetDirectories().Count -eq 0 } | select FullName

 

Jak to działa?

Tym razem Get-ChildItem z parametrem -Recurse oraz -Directory pozwala na wylistowanie wszystkich dostępnych katalogów w danej lokalizacji. Następnie wyniki zostają przekazane do polecenia Where-Object, gdzie dla każdego znalezionego folderu sprawdzany jest wynik metody GetFiles() (pobierz pliki) oraz GetDirectories() (pobierz foldery). Jeżeli w obu przypadkach wartość wynosi 0, katalog kwalifikowany jest jako pusty. Na koniec wszystkie wyniki trafiają do Select-Object, gdzie wybieramy nazwę oraz lokalizację wyświetlanych rekordów.

 

Wyświetlenie dziesięciu najnowszych logów z dziennika System dla lokalnego komputera:

Get-EventLog -LogName System -Newest 10

 

   Index Time              EntryType   Source                  InstanceID Message

   ----- ----              ---------   ------                 ---------- -------

  286459 cze 25 23:00  Warning     Tcpip              2147487914 Żądanie przydzielenia efemerycznego numeru port...

  286458 cze 25 22:57  Warning     Microsoft-Windows...         1014 Upłynął limit czasu rozpoznawania nazw dla nazw...

  286457 cze 25 22:41  Warning     Server             2147486152 Serwer nie mógł utworzyć powiązania do transpor...

  286456 cze 25 22:41  Information Microsoft-Windows...         114 Usunięto adres URL (http://*:2869/upnp/eventing...

  286455 cze 25 21:59  Information Microsoft-Windows...         16 Nie można znaleźć opisu identyfikatora zdarzeni...

  286454 cze 25 21:59  Information Microsoft-Windows...         16 Nie można znaleźć opisu identyfikatora zdarzeni...

  286453 cze 25 21:59  Information Microsoft-Windows...         16 Nie można znaleźć opisu identyfikatora zdarzeni...

  286452 cze 25 21:59  Information Microsoft-Windows...         16 Nie można znaleźć opisu identyfikatora zdarzeni...

  286451 cze 25 21:59  Information Microsoft-Windows...         16 Nie można znaleźć opisu identyfikatora zdarzeni...

  286450 cze 25 21:52  Information Microsoft-Windows...         158 The time provider 'VMICTimeProvider' has indica...


 

Jak to działa?

Za pomocą cmdletu Get-EventLog można wyświetlić wpisy z dziennika zdarzeń. W celu określenia konkretnego dziennika niezbędny jest parametr -LogName. W tym konkretnym przypadku wyświetlamy wpisy z dziennika System, a parametr -Newest zwraca dziesięć najnowszych wpisów.

 

Sprawdzenie, kiedy nastąpiło ostatnie uruchomienie komputera:

 

Get-CimInstance -ClassName Win32_OperatingSystem -ComputerName SRV01,SRV02 | Select CSName, LastBootUpTime

 

CSName LastBootUpTime

------ --------------

SRV01  11.09.2023 09:52:45

SRV02  10.09.2023 10:04:14

 

Jak to działa?

W tym przykładzie korzystamy z cmdletu Get-CimInstance, który służy do wysyłania zapytań CIM[1], i odpytujemy o klasę Win32_OperatingSystem. Sama klasa posiada wiele różnych właściwości dotyczących systemu operacyjnego, jednak nas interesuje tylko właściwość CSName reprezentująca nazwę komputera oraz LastBootUpTime, za którą skrywa się informacja o ostatnim uruchomieniu systemu. Dlatego też całość przekazujemy do cmdletu Select-Object i wybieramy tylko to, co dla nas istotne.

 

Podsumowanie

 

Książka „PowerShell 101 zadań do zautomatyzowania” jest idealnym przewodnikiem dla osób, które chcą popróbować automatyzacji z użyciem PowerShella. Zawiera 101 praktycznych zadań, które pomogą Ci zrozumieć i wykorzystać pełnię możliwości tego narzędzia. Każde z zadań jest opisane krok po kroku, co pozwala na łatwe zrozumienie, implementację lub dostosowanie do swoich potrzeb. Nie ma znaczenia, czy jesteś doświadczonym administratorem, czy dopiero zaczynasz swoją przygodę z IT. Książka zawiera zadania na różnym poziomie zaawansowania, dzięki czemu każdy znajdzie coś dla siebie.

 

Zapraszam do odkrycia, jak PowerShell może zmienić sposób twojej pracy. Zdobądź swój egzemplarz i już dziś zacznij robić więcej, robiąc mniej!

 


[1] CIM, czyli Common Information Model, to rozszerzalny, zorientowany obiektowo model danych opisujący strukturę i zachowanie zarządzanych zasobów, takich jak pamięć masowa, sieć lub komponenty oprogramowania