Webinaria: Systemy serwerowe | Windows server | Systemy microsoft | Powershell

Podcast #4 PowerShell

Udostępnij!

Rozmawiają: Dariusz Korzun – Business Development Director Altkom Akademia i Paweł Dremel – Trener wiodący PowerShell

DK: Dzień dobry, witam na spotkaniu poświęconym Powershell. Dzisiaj moim gościem jest Paweł Dremel, trener Altkom Akademii odpowiedzialny za szkolenia z PowerShell,  guru PowerShell w Altkom Akademii. Dzień dobry.

PD: Cześć, Darek.

DK: Dzisiaj spotkanie poświęcone jest PowerShellowi, który kojarzy mi się z paliwem samochodowym; coś takiego co dodaje wielkiego, mocnego kopa. Czy Powershell jest takim paliwem napędowym dla administratorów systemów IT?

PD: Jak najbardziej, dla administratorów. Dzięki temu narzędziu administrator może zarządzać systemem i aplikacjami Microsoft z poziomu poleceń, czyli jego praca może zostać zautomatyzowana.

DK: I nie muszę korzystać w ogóle z konsoli okienkowej?

PD: Jak już opanujesz na tym poziomie, to nie, nie musisz.

DK: Powershell możemy wykorzystywać do zarządzania wszystkimi aplikacjami serwerowymi Microsoftu?

PD: Dokładnie tak. Mamy jedno narzędzie jako Powershell, to są polecenia i mamy moduły do różnych rzeczy.

DK: Powershell jest narzędziem, w którym możemy tworzyć skrypty, a podłączając moduły do Powershella, te skrypty będą mogły wykonywać operacje w różnych aplikacjach Microsoftu?

PD: Dokładnie tak.

DK: No super. Powiedz mi, czy moglibyśmy powiedzieć, że dzisiaj osoby zajmujące się infrastrukturą microsoftową są takimi profesjonalnymi i stuprocentowymi administratorami bo też mają swojego własnego Shella?

PD: Mogą tak się czuć, natomiast jest bardzo duża różnica między tym co jest w Linuxie, a co daje Powershell. Moje początki to też systemy BSD gdzie pisałem skrypty. Powershell daje naprawdę moc administratorom. To co daje nam Powershell, to są obiekty. Pracujemy z obiektami, pozyskujemy obiekty, obrabiamy obiekty, a nie stringi.

DK: A co robimy w Linuxie?

PD: A w Linuxie dostajemy wyniki w postaci stringów.

DK: …które musimy potem analizować i obrabiać. Co oznacza obiekt w Powershellu?

PD: To samo co w językach programowania. Mogę czytać wartość, którą ma obiekt i wykonywać w stosunku do tego pozyskanego obiektu jakieś metody.

DK: Jakieś operacje.

PD: Dokładnie. Polecenia, które mamy w Powershellu generalnie robią jedną rzecz. Chcę pozyskać informacje na temat konta, to pozyskuję informacje na temat konta i dostaję obiekt…

DK: …którym jest konto.

PD: Dokładnie.

DK: Trzy główne obszary, w których Microsoft w tej chwili dostarcza oprogramowanie to oprogramowanie on-premise czyli to co sobie zainstalujemy w firmie, Azure czyli cloud microsoftowy oraz Office 365, czyli zbiór aplikacji, które funkcjonują w chmurze microsoftowej. Czy Powershell jest powiązany z tymi trzema obszarami?

PD: Tak, jak najbardziej. Powershellem mogę zarządzać całym środowiskiem Windowsa – w 2008 r. Microsoft dał dyrektywę, że każde oprogramowanie, które wydaje, musi być zarządzalne za pomocą Powershella.

DK: A dzisiaj mamy 2019 rok, to już było 11 lat temu.

PD: Dokładnie.

DK: I to narzędzie rozwija się już od jedenastu lat.

PD: Tak. Powershell, który mamy w systemie ma podstawowe funkcjonalności. Jest rozszerzany za pomocą modułów – czyli jeżeli chcę zarządzać Azurem, to ściągam moduł do zarządzania Azurem. Jak chcę zarządzać Officem 365, to ściągam moduł do zarządzania Officem 365.

DK: Musi być tego bardzo dużo.

PD: Jest bardzo dużo.

DK: Czyli mógłbym wykonać skrypt, który będzie komunikował się pomiędzy tym co mam zainstalowane on-premise, a np. Officem 365?

PD: Da radę.

DK: (śmiech). Da radę – a na jakim poziomie umiejętności? Jak już korzystam z Powershella to muszę się go jednak nauczyć.

PD: Tak, niewątpliwie. Mamy trzy poziomy zaawansowania w Powershellu. Basic, Advanced i Expert.

DK: Przyjmijmy, że poziom Basic będzie dla mnie odpowiedni bo ja zupełnie nic nie wiem.

PD: Założenie Powershella jest takie, że mamy dużo poleceń, które robią jedną rzecz. Ciężko byłoby przerobić wszystkie; w ogóle nie ma takiej potrzeby. Na Basicu uczymy się jak odnaleźć polecenie, które zrobi to co ja chcę zrobić w systemie. Uczymy się jak działa Powershell, jak znaleźć to czego potrzebuję żeby rozwiązać swój problem.

DK: Rozumiem, czyli poziom umiejętności Basic to jest znajomość narzędzia Powershell na tyle głęboka, że można było odnaleźć polecenia, które służą do wykonywania różnych operacji.

PD: Dokładnie tak. Do pracy z obojętnie jakim modułem.

DK: Jasne. To kim jest Advanced Powershell?

PD: A widzisz – tutaj już mamy coś takiego. Możemy napisać po Basicu prosty skrypt, który będzie miał parametry, do których będę przekazywał wartość. Na Advance piszemy skrypty bardziej zaawansowane, które potrafią przyjąć obiekt wytworzony przez inne polecenie. Mój skrypt będzie umiał coś przyjąć, obrobić i wypuścić kolejny obiekt.

DK: I to pomoże mi już na pewno w automatyzacji?

PD: Dokładnie tak.

DK: Co robi poziom ekspercki Powershella, skoro coś już napisaliśmy?

PD: Można to rozwijać dalej. Na poziomie eksperta uczymy się innego podejścia do problemu. Kiedy jako zaawansowany administrator piszę skrypty, to rozwiązuję tym skryptem jakiś problem. Na poziomie Advance’a zajmujemy się trochę większym problemem; muszę napisać rozwiązanie w postaci skryptu, natomiast żeby napisać dobry skrypt, który załatwi mi to co potrzebuję, muszę przemyśleć sprawę i tutaj mamy całe podejście jak zacząć pisać skrypt.

DK: To bardziej takie programowanie.

PD: Tak, ale na poziomie jeszcze bez pisania kodu, żeby człowiek mając swoje nawyki odszedł na chwilę od kodu, przemyślał sprawę, zgodnie z tym czego się nauczy na tym poziomie eksperta i dopiero spróbował wykorzystać swoją wiedzę.

DK: Czy mogę to nazwać wzorcami?

PD: Jak najbardziej.

DK: Basic – uczę się wykorzystania narzędzia wyszukiwania komend, które są w środku, tak żebym miał jakąś biegłość. Jeśli mam być bardziej zaawansowany, poznaję obiekty, z których mogę korzystać i komunikację pomiędzy obiektami. A ekspert to jest osoba, która stosuje dobre wzorce do tego żeby zbudować skrypty – czyli buduje coś co nie jest zlepkiem różnych komend, tylko przemyślaną strukturą wykonującą operację.

PD: Bardzo dobrze to ująłeś.

DK: (śmiech) A nie znam jeszcze Powershella. Gdybym chciał się go nauczyć, to ile czasu muszę przeznaczyć na naukę narzędzia na poziomie Basic?

PD: Na naukę na poziomie Basic – możesz podjąć naukę samemu, która będzie bardzo długa lub można przyjść na szkolenie tygodniowe, poznać tematy, poznać narzędzie i niewątpliwie trzeba później zacząć go używać.

DK: No tak. Na pewno. Czyli pięć dni i będę rozumiał Powershella na takim poziomie, że coś będę mógł zacząć robić?

PD: Dokładnie.

DK: Ok. Dobrze. Mam większe aspiracje, chcę wykonywać operacje na różnych obiektach w Windows Serverze, Azurze, Office 365, chcę być bardziej zaawansowany. Ile dni?

PD: Jedno szkolenie jest trzydniowe. Po trzech dniach stworzony został dwudniowy warsztat praktyczny jako uzupełnienie do Advance’a.

DK: Pięć dni na podstawę, trzy dni na Advance’a, dwa dni na warsztaty… w ciągu dwóch tygodni powinienem już zacząć bardziej sprawnie poruszać się w temacie. Po jakimś czasie przechodzę na poziom eksperta.

PD: Dokładnie tak.

DK: Ile dni?

PD: Ekspert? Kolejny tydzień.

DK: Kolejny tydzień – długo.

PD: No, dużo nauki (śmiech).

DK: To musi być trudny temat. Czyli podsumowując – wszystkie te szkolenia zajmą mi trzy tygodnie.

PD: Dokładnie.

DK: W ciągu trzech tygodni powinienem poznać podstawy, następnie zaawansowane sposoby pracy z Powershellem oraz najlepsze praktyki tworzenia skryptów, czyli trzy tygodnie, jeszcze gdzieś jest po drodze praktyka. Każda osoba, która chciałaby podnieść swoje umiejętności, zacząć pracować w konsoli wykonując operacje administracyjne, zarówno na Officie, Azurze oraz Windows Serverze czy SQL-u, przechodzi te szkolenia, po dwóch tygodniach wraca na trzeci tydzień na najlepsze wzorce i ma pewną swobodę pracy z systemem Microsoftu.

PD: Na pewno będzie potrafiła napisać skrypt wykorzystując najlepsze praktyki Advanced, Expert, po prostu poprawia biegłość w pisaniu i wykorzystaniu tego polecenia, tak żebym mógł zbudować swoje własne rozwiązanie. Natomiast niezależnie od poziomu…

DK: … podstawy na poziomie Basic są niezbędne do tego żebyśmy mogli cokolwiek zrobić na wyższych poziomach.

PD: Dokładnie.

DK: Powershell jest podstawowym narzędziem do zarządzania systemami microsoftowymi z konsoli.

PD: Dokładnie tak, są nawet miejsca gdzie kawałek interfejsu możemy mieć, ale jakaś część administracyjna jest wykonywana tylko za pomocą Powershella.

DK: Wszyscy, którzy pracują z systemami microsoftowymi powinni poznać Powershella, trochę więcej niż na poziomie Basic, najlepiej na poziomie Advance lub Expert. Paweł takie spotkania prowadzi, robi bardzo dużo różnych ćwiczeń, piszecie różne skrypty…

PD: Tak, wykraczamy poza program.

DK: Dziękuję za spotkanie i ciekawy temat powershellowy. Tak jak wcześniej podejrzewałem, jest to paliwo dla administratorów, można zrobić mnóstwo rzeczy. Dziękuję Ci za dzisiejsze spotkanie. Do usłyszenia!

PD: Dziękuję, do usłyszenia.