
Z doświadczenia wiem, że nie warto wywarzać otwartych drzwi, np. pisząc swoje moduły, przykład masz, chociażby tutaj. Pisanie w PowerShell jest wciągające, ale po pierwsze nieraz nie warto, po drugie nie wszystko jesteśmy w stanie samemu napisać.
Dlatego przygotowałem listę 7 modułów, które są najlepsze (niekiedy jedyne) w swoich obszarach i trzeba po prostu je znać.
1. PSScriptAnalyzer 🔎

Dzięki PSScriptAnalyzer sprawdzisz jakość kodu modułów i skryptów PowerShell. Moduł zawiera gotowe reguł oparte na najlepszych praktykach określonych przez zespół PowerShell i jego społeczność.
Używając PSScriptAnalyzer jednocześnie zobaczysz potencjalne wady swojego kodu i możliwe rozwiązania zgodne z najlepszymi praktykami. Wszystkie sprawdzane reguły wylistujesz poleceniem Get-ScriptAnalyzerRule
. Moduł również może być zasilany własnymi regułami.
Moduł możesz zainstalować ze repozytorium PowerShell Gallery, jednak jeśli zrezygnowałeś z PowerShell ISE na rzecz Visual Studio Code to PSScriptAnalyzer już tam jest.
Zdecydowanie polecam!
2. AzureRM Az ☁️

Jeśli pracujesz z Azure to skutecznego działania potrzebujesz Azure CLI lub modułu Az. Moduł pozwala na zarządzanie zasobami platformy Azure bezpośrednio z wiersza polecenia na platformie Windows, Linux i MacOS.
Azure PowerShell został zaprojektowany, aby ułatwić naukę i rozpoczęcie pracy oraz zapewnia zaawansowane funkcje automatyzacji.
Warto wspomnieć, że moduł Az ma starszego brata AzureRM. Moduły nie są ze sobą kompatybilne, chociażby ze względu na krótsze i bardziej spójne nazw poleceń. Jeśli zaczynasz przygodę z Azure i PowerShell to tylko z Az.
- Azure PowerShell documentation
- PowerShell Gallery – Az
- GitHub – azure-powershell
- Migrate Azure PowerShell from AzureRM to Az
Jeśli Twoim dostawcą chmury nie jest Azure to spokojnie, nic nie stoi na przeszkodzie, abyś dla Amazon Web Service lub Google Cloud Platform wykorzystał znajomość PowerShell.
AWS Tools dla PowerShell ☁️
Narzędzia AWS dla PowerShell to zestaw modułów PowerShell, które są oparte na funkcjonalności udostępnianej przez AWS SDK dla .NET. Narzędzia AWS dla PowerShell umożliwiają wykonywanie skryptów operacji na zasobach AWS z wiersza poleceń PowerShell.
Narzędzia AWS dla PowerShell są dostępne w następujących trzech różnych pakietach: – AWSPowerShell, AWSPowerShell.NetCore, AWS.Tools z czego zalecany jest ten ostatni.
Cloud tools dla PowerShell ☁️
GCP również nie zapomniało o PowerShell, ich Cloud Tools for PowerShell umożliwia tworzenie skryptów, automatyzację i zarządzanie systemami Windows. W przypadku tego dostawcy chmury sprawa jest jasna, jeden moduł GoogleCloud
który pobierzesz z
3. dbatools 📄

Moduł dedykowany dla osób pracujących z systemem zarządzania bazą danych Sql Server. (Kto nie ma u siebie chociaż jednej instancji Sql Server, niech podniesie rękę 😀)
Zawiera ponad 500 poleceń do zadań administracyjnych, programistycznych i migracyjnych. Moduł nie tylko dostarcza polecenia dla Sql Server Engine, ale dla takich komponentów jak Integration Services, Reporting Services i Analysis Services.
Jeśli używasz SqlServer (lub jeszcze SQLPS) to sprawdź koniecznie dbatools. Dodam tylko, że w mojej opinii najlepszy moduł PowerShell rozwijane przez jego społeczność.
4. InvokeBuild ⚙️
InvokeBuild pozwoli Ci na jeszcze prostszą automatyzację w ramach jednego projektu poprzez wywoływanie zdefiniowanych zadań w skrypcie .build.ps1
.
Takim projektem może być moduł PowerShell, który będziesz chciał objąć powtarzalnymi zadaniami jak testowaniem Pester, czy sprawdzanie jakości kodu za pomocą PSScriptAnalyze, tworzenie artefaktu i publikowanie w lokalnym bądź publicznym repozytorium, ale nie tylko.
5. Plaster 📁

Moduł Plaster usprawnia tworzenie modułów PowerShell, testów Pester, konfiguracji DSC i innych. Dla mnie szczególnie pomocny przy tworzeniu struktury pod nowe modułu. Generowanie odbywa się na podstawie przygotowanych szablonów, które gwarantuję zawsze identyczny, pożądany wynik.
6. Pester 🧪
Pester umożliwia pisanie testów kodu PowerShell oraz wykonywanie ich w zautomatyzowany sposób. Same testy są po to, aby sprawdzić, czy nasz kod działa zgodnie z oczekiwaniem. Wykorzystanie Pester do testów umożliwi Ci dostarczanie kod PowerShell lepsze jakości.
Pester znalazł szersze zastosowanie, nie tylko do testowania kodu ale również infrastruktury.
Przykłady dwóch modułów, któe wykorzystują Pester właśnie w taki sposób:
7. PoshRSJob 🚀
Moduł PoshRSJob robi to samo co zestaw natywnych poleceń *-Job
ale szybciej i prościej. Jeśli chcesz zrównoleglić swoje polecenia poprzez uruchamianie ich w tle to moduł na pewno uprości zadanie.
Podsumowanie
Moduły, które znalazły się na liście to jedne z najpopularniejszych, stoją za nimi wielcy dostawy i/lub ogromna społeczność. Efektem popularności jest, łatwość znajdzienia sporej ilość przykładów i treści na ich temat.
Jeśli chciałbyś o którymś module poczytać więcej na AkademiaPowerShell, to zostaw taką informację w komentarzu.