ISESteroids (pl)

IseSteroids

Zainteresowanie PowerShell’em ciągle rośnie (źródło Google Trends):

Świat:

1

Polska:

2

Stron, blogów, instrukcji jest mnóstwo. Powstają narzędzia mające na celu ułatwić i pomóc w pisaniu kodu ludziom, którzy kiedyś nie pomyśleliby, że zamienią skręcanie “szaf” (rackowych) i klikanie w “Okienkach” :), na programowanie.

Wśród autorów takich narzędzi są Dell ze swoim PowerGUI, SAPIEN z potężnym PowerShell Studio 2016, jest także dodatek Visual Studio z dodatkiem “Adam Driscoll’s PowerShell Tools for Visual Studio project”. Oczywiście nie da się i nie należy zapomnieć o Microsoft Script Browser for Windows PowerShell ISE, które staje się coraz lepsze, a w swojej prostocie jest idealne, szybkie i bez zbędnych funkcji.

Jest także, wydawałoby się, “dodatek” do ISE o nazwie ISESteroids, tak o nim mówi sam autor Dr. Tobias Weltner. Jak dla mnie słowo dodatek to za mało. Narzędzie idealnie wkomponowuje się w codzienną pracę “Gościa z IT”. Od samego początku widoczna jest ergonomia i pomysłowość rozwiązań. Po chwili używania wszystko staje się jasne, wszystko jest pod ręką. Z każdym dniem można znaleźć nową funkcjonalność, po znalezieniu której człowiek zastanawia się jak mógł wcześniej bez niej żyć 🙂 (tym bardziej jeśli nie czytało się instrukcji tak jak ja, czyli jak większość Polaków 🙂 ). I to dosłownie z każdym dniem ponieważ dodatek ten jest rozwijany na bieżąco w dosyć dużym tępię. Jego rzucająca się w oczy ergonomia wynika z tego, że autorzy sami pracują na ISESteroids na codzień (sam widziałem to nie żaden bełkot reklamowy :). A propos może sam w tym miejscu zakończę to reklamowe gadanie i pokażę część możliwości).

Żeby “zainstalować” dodatek należy uruchomić PowerShell v5 ISE w trybie Administratora (run as) i następnie wydać polecenie:

Install-Module ISESteroids -Scope CurrentUser

Aby wykonać update już zainstalowanego dodatku należy wywołać polecenie:

Update-Module ISESteroids -Force

Żeby uruchomić dodatek należy wywołać polecenie:

Start-Steroids

które jest aliasem do 🙂

Import-Module ISESteroids

W samym dodatku mamy więcej ukrytych takich “smaczków” na przykład sam “start” modułu wygląda tak:

3

Funkcjonalności

Wyszukiwanie Zaawansowane (Advanced Search)
Zaawansowane Wyszukiwania, jest w stanie przeszukiwać nazwy plików lub ich treści z użyciem wyrażeń regularnych, a nawet filtrować skrypty PowerShell na podstawie tak zwanych tokenów. To oznaczy, dla przykładu, że jesteśmy w stanie znaleźć skrypt, w którym słowo “Item” zostało użyte nie jako nazwa zmiennej, nie jako przypadkowe słowo w opisie, ale dokładnie jako nazwa polecenia:

4

Automatyczna Analiza Poleceń (Automatic Command Analysis)
Automatyczna Analiza Polecenie umożliwia analizę w czasie rzeczywistym uruchamianych poleceń, pozwala przeanalizować typy obiektów zwracanych przez te polecenia. Można zobaczyć, jak PowerShell wiąże swoje argumenty polecenia do parametrów sterujących. Jak rozwijane są aliasy oraz skróty parametrów:

5
6

AutoRefaktor Kodu (AutoRefactor Script)
Skrypty PowerShell (i nie tylko) po ciągłych zmianach mogą stać się mało czytelne wizualnie. AutoRefactor automatycznie stosuje szereg najlepszych praktyk, zmienia “brudny” skrypt w dobrze ułożony, który stosuje się do zasad dobrych praktyk.
Zamienia takie skróty myślowe:


gci | where {$_.Name -match 'txt'} | sort name | fw -c 1

w takie pełne zdania:

7.png

Zmienne użytkownika (sesji) (User Variables)

8.png

Podpisywanie skryptów (Code Signing)

9

Sprawdzanie kompatybilności (CompatAware)
CompatAware pozwala bezpiecznie pisać skrypt w kontekście różnych wersji PowerShell. CompatAware podkreśla niezgodne poleceń, parametry i konstrukcje językowe.

Kontrola wersji (File Version Control)
Kontrola wersji plików zapisuje wiele wersji skryptu. Tworzy wersje ‘minor’ i ‘major’, potrafi porównywać wersje, identyfikować różnice i przywracać poprzednie wersje.

PSSharper (PSSharper)
Funkcjonalność, która ułatwia zrozumienie kodu PowerShell, znalezienie problemów i szybką poprawę (“wyostrzania”) istniejącego kodu. Jest to narzędzie podobne do ReSharper firmy JetBrains. PSSharper pomaga zauważyć, kolorując składnik, na przykład:

  • zarezerwowane zmienne systemowe
  • nieprzypisane /nieużyte zmienne
  • podejrzane przypisania

Zaciemnianie kodu (Obfuscation Mode)
Zaciemnianie kodu źródłowego ma na celu przeciwdziałania próbom analizy programu w celu zmniejszenia zagrożenie własności intelektualnej, utrudnienie znalezienia luk bezpieczeństwa lub obniżenia zysku z napisanego programu:

10.png

Budowanie aplikacji (exe) ze skryptu (Create Application)

11.png

Pester (Pester Integration)
Wbudowany asystent pisania Pester testów (TDD = “Think, then code”)

12

Skróty klawiszowe (część) (Keyboard Shortcuts)

13.png