Piszemy sobie moduł: C# (1)

•16 marca, 2016 • Dodaj komentarz

ModulBinarny_01Pisanie modułów skryptowych w PowerShellu to rzecz trywialna dla każdego, komu zdarzyło się w PowerShellu "popełnić" kilka skryptów. W ostateczności moduł taki możemy utworzyć wrzucając kilka funkcji do pliku z rozszerzeniem psm1. Jeśli mamy skrypty stanowiące swoiste biblioteki funkcji może wręcz wystarczyć zmiana nazwy pliku. Wreszcie – importować w ten sposób można również pliki z rozszerzeniem ps1, nic nie stoi więc na przeszkodzie by zwyczajny skrypt zacząć traktować jako moduł skryptowy. Dlatego właśnie postanowiłem przyjrzeć się dwóm pozostałym opcjom. Na pierwszy ogień idzie moduł binarny. A ponieważ z języków, w jakich można moduł taki napisać, najbliższy memu sercu jest C# – z niego właśnie w trakcie pisania modułu skorzystam.

Czytaj dalej ‚Piszemy sobie moduł: C# (1)’

Wspieramy stronicowanie

•31 stycznia, 2016 • Dodaj komentarz

stronicowanieTworząc polecenia w PowerShellu mamy całą gamę możliwości, dzięki którym nasz skrypt/ funkcja może łudząco przypominać skompilowany cmdlet. Jedną z takich możliwości jest "oflagowanie" polecenia jako wspierającego stronicowanie (SupportsPaging). Oznacza to, że nasze polecenie zyska parametry zbliżone do tych, które oferuje Select-Object. Od dłuższego czasu nosiłem się z zamiarem dania szansy tej funkcjonalności. O tym jak długi był to czasy niech zaświadczy fakt, że możliwość tą dodano w wersji trzeciej PowerShella. I przyznam, że mimo wszystko troszkę mnie opcja ta rozczarowała. Na ile udało mi się zbadać jej możliwości, ręczne dodanie dwóch parametrów, na których mogłoby mi zależeć, może się okazać rozwiązaniem lepszym. Ale najpierw o tym co i jak, czyli gdzie (przynajmniej teoretycznie) opcja ta może nam się przydać.

Czytaj dalej ‚Wspieramy stronicowanie’

Plik, czyli zmienna.

•17 stycznia, 2016 • 1 komentarz

VarZmienne w PowerShellu to dość ciekawy "zwierz". Większość użytkowników spotyka się z nimi w najprostszej postaci: $zmienna. Definiujemy, modyfikujemy, używamy. I tyle. Trzeba jednak wiedzieć, że zmienne to coś więcej niż tylko "worki" na nasze obiekty, do których odnosimy się wykorzystując tę najprostszą notację. W tym artykule postaram się wspomnieć o kilku sprawach związanych ze zmiennymi, które odróżniają zmienne w PowerShellu od zmiennych wykorzystywanych w innych językach programistycznych i skryptowych. Zanim jednak o tym, przyjrzymy się nieco dokładniej temu czym jest a czym nie jest w PowerShellu nazwa zmiennej.

Czytaj dalej ‚Plik, czyli zmienna.’

Noworoczne postanowienia (reaktywacja)

•31 grudnia, 2015 • 3 Komentarze

Z przerażeniem spoglądam dziś na statystyki bloga z ostatniego roku. Jeden post, w dodatku na samym jego początku… Nie taki był plan! Ostatnio zastanawiałem się nad przyczyną tego stanu rzeczy i doszedłem do wniosku, że przyczyna jest jedna: zawsze mierzę w artykuły długie i wyczerpujące temat, często dość obszerny. A przecież wiedza to nie tylko te tomiszcza, bloki wiedzy, ale również drobne wskazówki, ciekawostki i informacje, które zamknąć można w kilku zdaniach. Moje postanowienie noworoczne ich właśnie będzie dotyczyć. Planuję wrzucać coś o wiele częściej, ale w mniejszych porcjach. Wam będzie łatwiej to czytać, mi łatwiej pisać w miarę regularnie i jednocześnie jak sądzę może nawet ciekawiej.

Czytaj dalej ‚Noworoczne postanowienia (reaktywacja)’

PowerShell ISE na sterydach (2.0), część 6

•4 stycznia, 2015 • Dodaj komentarz

ISESteroids2-6

W ostatniej części cyklu o ISESteroids zamierzam skupić się na “wodotryskach”. Oczywiście, człowiek z natury swej lubi rzeczy “ładne” (inna sprawa, że piękno może być rzeczą wysoce subiektywną), więc również “wodotryski” trudno uznać za zbędne ozdobniki. Więcej: część z nich naprawdę ułatwia pracę w ISE i uwypukla istotne dla użytkownika informacje. Nie ma jednak wątpliwości, że część z tych wodotrysków znajdzie się w kategorii: “To super! Zjawiskowe! Tylko… raczej nie będę z tego korzystać, bo…”. Warto jednak wiedzieć, że takie możliwości w ISESteroids drzemią, by móc świadomie z nich nie korzystać. Puszczam oczko

Czytaj dalej ‚PowerShell ISE na sterydach (2.0), część 6’

PowerShell ISE na sterydach (2.0), część 5

•11 grudnia, 2014 • Dodaj komentarz

ISESteroids2-5

W cyklu życia skryptu nierzadko zdarza się, że wraca on na biurko autora: czy to w celu usunięcia błędów, czy optymalizacji. W wersjach dostępnych do tej pory ISESteroids nieznacznie tylko usprawniał ten aspekt edytowania skryptów. Wersja dostępna obecnie (RC, do pobrania w tym samym miejscu, co wersje poprzednie) dodała jednak całą gamę elementów, które operacje z tego zakresu powinny usprawnić. Elementy te bazują na dodanej w wersji 2.0.12.5 “marginesie debuggera”. Więc choć początkowo planowałem w tej części zająć się “wisienką na torcie” – wszelkiego rodzaju wodotryskami, które ISESteroids dodaje, to temat ten musi chwilkę poczekać. Najpierw to, co istotne: odrobaczanie.

Czytaj dalej ‚PowerShell ISE na sterydach (2.0), część 5’

PowerShell ISE na sterydach (2.0), część 4

•8 grudnia, 2014 • Dodaj komentarz

ISESteroids2-4

Tworzone w ramach organizacji skrypty, szczególnie te, które działać będą w środowisku produkcyjnym, powinny podlegać pewnemu procesowi weryfikacji. Korzystne jest też, by weryfikował skrypt ktoś inny niż autor (lub autorzy) – zdecydowanie zmniejsza to szansę “przemycenia” błędów logicznych, wynikających z błędnych założeń. ISESteroids ułatwia taki formalny proces przez kilka elementów: ułatwienie analizy zawartości skryptu pod kontem jego potencjalnych zagrożeń, uproszczenie podpisywania skryptu podpisem cyfrowym czy umożliwienie jego publikację jako “zamkniętej” aplikacji.

Czytaj dalej ‚PowerShell ISE na sterydach (2.0), część 4’