Pomocy! Zepsułem pomoc!

•11 kwietnia, 2021 • Dodaj komentarz

Popsuta-pomocPowerShell posiada bardzo przydatną funkcję: pomoc do funkcji i skryptów definiowaną za pomocą komentarza na początku, końcu (sprawdza się w przypadku skryptów i funkcji) lub tuż przed definicją (naturalnie, działa dobrze tylko w przypadku funkcji). Niestety, pomoc ta jest dość wrażliwa i niewielka literówka może sprawić, że cały nasz wysiłek włożony w jej przygotowanie pójdzie na marne i nasza pomoc w formie komentarza stanie się zwyczajnym komentarzem, nie oferującym pomocy w oczekiwany sposób.

Czytaj dalej ‚Pomocy! Zepsułem pomoc!’

Tworzymy moduł: testy jednostkowe

•30 grudnia, 2020 • Dodaj komentarz

neonowkaKiedy kilka lat temu usłyszałem po raz pierwszy o testach jednostkowych to uznałem, że to chyba nadmiar czasu po stronie moich kolegów powoduje, że zamiast przeznaczyć czas na pisanie kodu, który coś robi, piszą kod, który udaje jedynie, że coś robi. W pewnym jednak momencie postanowiłem spróbować i pomysłem tym zaraziłem swoich kolegów. A może to oni zarazili mnie…? Tak czy inaczej, zaczęliśmy pisać testy do naszych nowotworzonych funkcji i bardzo szybko okazało się, że testy robią i to bardzo dużo.
Czytaj dalej ‚Tworzymy moduł: testy jednostkowe’

PowerShell Remoting i gMSA

•8 listopada, 2020 • Dodaj komentarz

remote controlW naszej firmie staramy się (na ile to możliwe) eliminować konta serwisowe, zastępując je kontami gMSA (Group Managed Service Account). Co prawda nadal istnieje wiele rozwiązań (w tym rozwiązań Microsoft), gdzie korzystanie z takich kont nie jest możliwe, ale i tak udało nam się znaleźć wiele miejsc, gdzie sprawdzają się one bardzo dobrze. Jest tylko jeden problem z kontami tego typu: ciężko przetestować ich działanie. Jest jeden wygodny sposób, który wymaga korzystania z PowerShella w wersji 5.1 – dedykowane końcówki PowerShell Remoting.
Czytaj dalej ‚PowerShell Remoting i gMSA’

Tworzymy moduł: pomoc się pisze!

•28 października, 2020 • Dodaj komentarz

pisze-pomocDziś przyjrzymy się modułowi, dzięki któremu tworząc pomoc możemy skorzystać z tego samego języka, przy pomocy którego tworzone są strony dokumentacji – markdown. Co prawda pisząc pomoc do naszych modułów w PowerShellu możemy korzystać z pomocy zawartej w komentarzu, dzięki czemu pisanie pomocy jest dość proste, to jednak ciężko wykorzystać tę samą pomoc w innych miejscach (takich jak strony pomocy). Pliki markdown świetnie sprawdzają się w takim scenariuszu. Wykorzystamy do tego moduł platyPS.

Czytaj dalej ‚Tworzymy moduł: pomoc się pisze!’

Dot Foreach, Dot Where

•10 października, 2020 • Dodaj komentarz

DotDotDotSądzę, że prawie każdy, kto z pracy w PowerShellu czerpie przyjemność ma swoich „faworytów” – te elementy składni, których regularnie (nad)używa… O jednym z takich „faworytów” wspomniałem Wam ostatnio – operator switch to w mojej ocenie najlepsze co zdarzyło się od pojawienia się krojonego chleba. Dziś chciałem Wam przybliżyć element składni, który wciskać próbuję regularnie, gdzie tylko się da. Głównie dlatego, że kod, który tworzę, musi działać jedynie na najnowszej wersji PowerShella. Składnia ta bowiem dodana została w wersji czwartej, więc cokolwiek wymagającego wsparcia dla „trójki” musi obejść się smakiem… To „wirtualne metody” ForEach i Where.

Czytaj dalej ‚Dot Foreach, Dot Where’

Tworzymy moduł: struktura

•22 września, 2020 • Dodaj komentarz

powershell-module-structureWakacje dobiegły końca i pora wrócić do cyklu dotyczącego tworzenia modułu. W poprzedniej części skupiliśmy się na tym, jak korzystając z gita zarządzać kodem wewnątrz naszego modułu. Dziś przyjrzymy się temu, jak dostosować strukturę modułu do pracy z gitem, pomagając nam uniknąć problemów związanych z konfliktami w gicie i jednocześnie jak później zadbać o to, by publikowany moduł był możliwie najprostszy. Zanim jednak przejdziemy do struktury, którą staram się wykorzystywać obecnie, postaram się opisać proces, który nas do niej doprowadził.

Czytaj dalej ‚Tworzymy moduł: struktura’

Switch: szwajcarski scyzoryk

•24 czerwca, 2020 • 1 komentarz

PowerShell_Swiss_KnifePowerShell na przestrzeni lat ewoluował: zarówno jako platforma automatyzacji jak i język skryptowy. Dla mnie jednak, mimo licznych zmian, jedna konstrukcja w tym języku pozostaje „faworytem”, łącząc w sobie możliwości wyrażeń logicznych i pętli, oferując pracę z wieloma źródłami danych w sposób nie spotykany w innych, dostępnych w PowerShellu konstrukcji. Ta konstrukcja to switch: szwajcarski scyzoryk w PowerShellu.

Czytaj dalej ‚Switch: szwajcarski scyzoryk’

Tworzymy moduł: praca z gitem

•13 czerwca, 2020 • 3 Komentarze

PsLogoKorzystając z PowerShella na co dzień na ogół nie musimy przejmować się tym, jak wygląda tworzony przez nas kod. Nawet proste skrypty na upartego możemy wykorzystywać nie myśląc nawet o systemie kontroli wersji. Jeśli jednak zamierzamy tworzyć moduł, to niestety (a może stety?), bez tego rodzaju narzędzi nie ma raczej sensu kontynuować. Jest to jeszcze istotniejsze wtedy, gdy zamierzamy współtworzyć moduł: możliwość zadbania o to, by poprawiając nasz kod nie cofnąć poprawek koleżanki/kolegi, staje się jeszcze ważniejsze.

Czytaj dalej ‚Tworzymy moduł: praca z gitem’

Dlaczego parametr zmienia wartość?

•12 Maj, 2020 • Dodaj komentarz

PortfelPraca z PowerShellem to swoista mieszana przewidywalnych zachowań i niespodzianek. Jak ktoś mądrzejszy kiedyś powiedział: PowerShell jest bardzo konsekwentny, chyba że akurat nie jest. O jednym z takich na pierwszy rzut oka niekonsekwentnych zachowań chciałem dziś Wam napisać. I pokazać, że w tym szaleństwie, mimo wszystko jest metoda. Przyjrzymy się temu jak zachowywać się będą zmienne przekazywane do funkcji jako parametry. Zanim jednak przejdziemy do konkretnych przypadków – musimy poświęcić parę słów zakresom w PowerShellu.

Czytaj dalej ‚Dlaczego parametr zmienia wartość?’

Tworzymy moduł: od czego zacząć?

•24 kwietnia, 2020 • Dodaj komentarz

First-StepDawno temu napisałem krótką serię o tym jak wyglądają moduły w PowerShellu. Tym postem chciałbym rozpocząć cykl, w którym spróbuję się podzielić moimi doświadczeniami dotyczącymi tworzenia modułów. Wiele z zawartych tu rad bierze się wprost z kilkuletniego doświadczenia w pracy nad modułami w ramach kilkuosobowego zespołu. Mam nadzieję, że choć część uwag/ spostrzeżeń/ rad przyda Wam się w trakcie tworzenia własnych modułów, czy to na potrzeby firmy, w której pracujecie, czy to na potrzeby wspólnoty w ramach platform takich jak GitHub.

Czytaj dalej ‚Tworzymy moduł: od czego zacząć?’