Skip to Content

IT nieuczesane.
category

Category: article

PowerShell – nauka na błędach cz.II

Windows_PowerShell_iconna początek zaprezentuję… początek. całkiem logicznie q:

find-UnusedADObjects.ps1

po pierwsze nazwa skryptu z przyjętą w PS notacją. korzyść – bardziej intuicyjne wykorzystanie.

po drugie bardziej rozbudowane komentarze. odpowiednio zrobione są bardzo wygodne – korzystając z polecenia get-help wyświetli się pełny opis. każda wersja PS wprowadza coraz więcej obsługiwanych słów kluczowych, a żeby dowiedzieć się o całości należy poszukać ‚comment based help‚. niektórzy mogą powiedzieć – ‚eeee, jestem zbyt leniwy na takie szlaczki’.  zatem zwróćcie uwagę na to, jak opisany jest parametr ‚scope’ a jak ‚splitFiles’:

  • ‚scope’ jest wyniesiony na początek , do ‚comment based help’
  • ‚splitFiles’ jest opisany ‚na lenia’ jako komentarze tuż pod opcją

obie wersje są obsługiwane przez get-help, więc jak się okazuje – nawet nie trzeba rysować szlaczków. wystarczy minimum wysiłq aby na szybko opisać po co jest dany parametr – z korzyścią dla twórcy jak i dla end-usera.

jest jeszcze jedna metoda tworzenia komentarzy, ale wydaje mi się, że to jeden z pomysłów, który się nie przyjął i został porzucony. jego zastosowanie jest, delikatnie mówiąc, niszowe:

wiadomość można zobaczyć na dwa sposoby – badając kod źródłowy skryptu, lub:

jeśli wartość zdefiniowana jest jako obligatoryjna ORAZ nie wprowadzimy jej ORAZ po wyświetleniu komunikatu wpiszemy ‚!?’ [SIC!]:

wygląda na to, że ktoś miał pomysł… tylko inni go nie podzielili (;

„#Required -version 3” zapewnia kompatybilność. nie bawiłem się w ładowanie modułów bo zakładam, że zostaną załadowane automatycznie [od ver. PS3.o] oraz wykorzystane jest kilka technik zapisu, które nie jestem pewien czy zadziałają w PS2.o. to zabezpieczy przed przypadkowym odpaleniem na starej wersji.

następnie parametry. nie tylko są, ale są zdefiniowane w bardziej rozbudowany sposób – część z nich ma określone ograniczenia poprzez validateSet i validateRange. to kolejna rzecz, która nie służy wyłącznie dla zaspokojenia puryzmu i widzi-mi-się. jedną z najwygodniejszych cech PS jest dokończanie TABem. jeśli zdefiniowany jest validateSet, to szybko można całe polecenie wpisać: „find-u<TAB dokończy nazwę skryptu> –s<TAB dokończy nazwę parametru> <TAB będzie przerzucał pomiędzy zdefiniowanymi wartościami>”. takie niuanse są prawdziwą SiłąPowłoki (;

inną ciekawostką jest zdefiniowane zmiennej, której standardowa deklaracja jest kawałkiem kodu:

zacznę od tego, że jestem przeciwnikiem takiego pisania – braqje tu obsługi błędów. ale w całym skrypcie darowałem sobie obsługę błędów – zupełnie nieedukacyjnie… ale to na inny wpis, kiedyś. drugi błąd popełniony w tej linijce to wykorzystanie aliasu ‚gc’. aliasy mogą być globalnie przedefiniowane więc dla pewności w skryptach powinno się ładnie używać pełnych, prawidłowych nazw commandletów. trzecią ‚głupią’ rzeczą, której w praktyce nie robię i jest tutaj bardziej do celów edukacyjnych, jest wyniesienie zmiennych do oddzielnego pliq.

find-UnusedADObjects.OUsToSkip

w starej wersji pliq było wewnątrz: $OUsToSkip=”Servers”,”_UnusedObjects”,”Service Accounts”  . kiedy należy wynieść wartości do zewnętrznego pliq? kiedy skrypt będzie zaszyfrowany lub podpisany certyfikatem. czyli nie będzie można w nim dokonać żadnej modyfikacji. należy wtedy jednak dobrze opisać w helpie jak taki plik ma się nazywać, co ma zawierać itd. sporo problemu. a ponieważ zazwyczaj celowo oddaję źródła, zależy mi na ‚kompaktowości’ rozwiązania – potęga skryptów to często fakt,  że jest to *pojedynczy*, mały plik.  niemniej warto wiedzieć, że tak również można zrobić, i to w całkiem prosty sposób.
oczywiście oprócz pliq można po prostu podać tablicę stringów jako parametr… ale niezbyt to wygodne w codziennym użyciu.

kolejne drobiazgi w deklaracjach to np. fakt, że pliki będą się odkładać a nie nadpisywać, ponieważ zawierają datę w nazwie.

dalej widać regex który omówię w późniejszych częściach, deklaracje filtrów wyszukiwania, $searchProperties – które, jak się finalnie okaże, wyniesione w tym miejscu pozwoli w bardzo łatwy i szybki sposób poszerzyć funkcjonalność, jeśli klient nagle zażyczy sobie w raporcie dodatkowych danych.

i to na tyle w tej części. niby tylko ‚komentarze i deklaracja zmiennych’ a okazuje się, że już w tej fazie, jest wiele istotnych detali na które należy zwrócić uwagę aby skrypt był wygodny w użyciu i przejrzysty.

eN.

 

PowerShell – nauka na błędach cz.I.

Windows_PowerShell_iconmoje skrypty gdzieś tam sobie żyją u różnych klientów. dostałem ostatnio prośbę, aby coś tam w jednym takim skrypcie zmienić. otworzyłem, popatrzyłem.. popłakałem się i napisałem go od nowa.

skrypt był z 2o11 – kiedy uczyłem się PS. na pierwszy rzut oka można stwierdzić, że jest napisany przez kogoś, kto pisał w VBSie i właśnie zaczyna się uczyć się składni PS i daleko jeszcze do Zrozumienia tego języka. skrypt działał i był regularnie wykorzystywany przez kilka lat – ok. pod tym względem ok. ale to, w jaki sposób jest napisany… po prostu musiałem napisać go od nowa.

przypatrzmy się temu… temu.. tej atrapie skryptu. tak na prawdę to trzem skryptom, stanowiącym mechanizm pozwalający robić regularny przegląd AD – nieużywane konta użytkowników, komputerów oraz konta z niewygasającymi hasłami. całość ma pozwolić na:

  • znalezienie nieużywanych obiektów
  • możliwość przejrzenia ich tak, aby admin mógł ręcznie odfiltrować co jest potrzebne a co nie
  • przygotowanie danych do raportu (to właśnie był nowy request po którym postanowiłem napisać całość od nowa)
  • łatwe zablokowanie takich obiektów.

zacznę od tego, co było zrobione dobrze. pewne nawyki można wynieść nawet z VBSa q:

  • skrypt jest *w miarę* uniwersalny. i faktycznie wiem, że był/jest wykorzystywany u co najmniej 3 klientów bez większych przeróbek [przynajmniej kiedy go oddawałem]
  • kod jest opisany
  • są informacje o wersjach – wbrew pozorom wielokrotnie był to istotny niuans pozwalający szybko ustalić której wersji ktoś używa, a więc co może nie działać.

w dużym skrócie – ponieważ skrypty piszę od bardzo dawna, trochę dobrych nawyków widać. jednak tu, gdzie zaczyna się znajomość języka… jakie zatem widać wady:

  • skrypt może i jest *w miarę* uniwersalny, ale to mało. zmienne powinny być wyrzucone do parametrów [których wtedy nie umiałem jeszcze używać] tak, aby nie trzeba modyfikować samego kodu.
  • już sama nazwa pliq nie jest zgodna z przyjętą przez PS notacją czasownik-rzeczownik
  • wyjściem jest plik textowy… niby ładny, bo jakieś komentarze… ale nauczyłem się, że dobry plik, to uniwersalny plik. czyli taki, który można otworzyć np. w excelu i dowolnie go obrobić. dzięki temu format staje się przenośny i pozwala wykorzystywać różne wbudowane w język mechanizmy, zamiast kombinować z pisaniem własnej ‚obsługi’. np. jest zmienna, definiująca OU, które mają być wyszukane, ale pominięte przy późniejszym blokowaniu. wymyśliłem więc, że będę umieszczał asteriska ‚*’ na początq linii. fujć! jakie to… VBSowe.
  • pliki wyjściowe mają zawsze tą nazwę. to oznacza, że wejściowe dla skryptu, który będzie je obrabiał, również ma ‚zahardcodowane’ nazwy. brzydka maniera, z różnych powodów [np. brak historii].
  • wykorzystywanie mechanizmów o statusie ‚obsolete’ – ADSI to stary interfejs COM… [na usprawiedliwienie mogę powiedzieć, że wtedy nie było jeszcze tak rozbudowanego modułu ActiveDirectory i wszyscy używali commandletów questa. nie jestem pewien czy pierwsze commandlety AD nie wykorzystywały ADSI?]
  • duża ilość powtórzonego kodu – zarówno dla obiektu typu user jak computer jest praktycznie ten sam kod.
  • nie są wykorzystywane dobrodziejstwa języka. kod jest mówiąc oględnie – prymitywny.

widać, że jakieś tam drobne zmiany były wprowadzane – w końcu najważniejsze jest, że działa. jednak przychodzi moment, w którym pojawia się nowe żądanie zmiany i przerobienie kodu nagle staje się zbyt pracochłonne albo po prostu niewygodne. tak też zrobiłem wiosenne porządki i napisałem skrypt od nowa…

w kolejnych częściach będę prezentował po kawałq nową wersję komentując zastosowane techniki.

eN.

 

Powershell i dyski maszyn wirtualnych w klastrze – kontynuacja

druga część o raportowaniu dysków na Technet

eN.

Co teraz?

Czasami zapominam, że gdzieś tam w szklanych biurowcach siedzi armia ludzi, która analizuje wszystko i wszystkich, potem wychodzą takie schematy.
Warto zerknąć.

HC_ET_2014.jpg;pv4cc7877f7de80268

Pełen artykuł tutaj:
http://www.gartner.com/newsroom/id/2819918

kopiowanie plików na VM

nie qmam polityki eMeSa, który zdając sobie sprawę z wagi wirtualizacji, ubił środowiska wirtualizacyjne na stacjach roboczych. Hv na lapq ma wiele wad, ale jedna z nich została usunięta. w końcu można kopiować pliki bezpośrednio na maszynę… szkoda, że nie w drugą stronę, ale od czegoś trzeba zacząć q:

pełny opis zamieściłem tutaj.

eN.

 

 

Jakie czasy taka bomba atomowa

Daro zmroził poprzednim wpisem dziennikarzy, ja zmrożę resztę, bo jak się okazało dziennikarze akurat nic nie szyfrują.

Wpadło mi w ucho hasło, i nie mogę o tym zapomnieć….

Bo, że rządy szpiegują telefony, to wiemy.

Że nie ma co kupować chińszczyzny, bo są szpiegule w firmware … to wiemy.

Ale to wszystko może nas już w ogóle nie bulwersować, bo nie będzie już niedługo sensu cokolwiek szyfrować, chować i utajniać. Tak jak dwie atomówki na Japonię zmieniły podejście do wojen, to ten news IMHO może zmienić podejście do komunikacji w internecie. Ciekawe co z tego wyniknie.

NSA buduje komputer kwantowy

Link 2

 

Odrobina kultury

8 Marca miało miejsce coroczne rozdanie nagród branży reklamowej w jednym z najważniejszych polskich konkursów – KTR: http://www.ktr.org.pl/nagrody-ktr/

Jest to wydarzenie stricte branżowe, ale wpis o nim na w-files pojawia się z dwóch powodów:

1. Najwyższe wyróżnienie, tzw Grand Prix zostało przyznanie nie za wypasiony film reklamowy , czy elektryzującą kampanie, ale za akcje związaną tylko z internetem.Pomijając tą ciekawostkę, pomysł, który wygrał był naprawdę zajebisty, WARTO przeczytać wywiad z nagrodzonymi (fajne chłopaki btw):
http://nowymarketing.pl/a/3297,alek-frydrych-i-mateusz-zdanko-zdobywcy-grand-prix-ktr-2014-nic-na-sile-wykopowicze-sa-wyjatkowo-wyczuleni-na-tandete

2. Wśród wielu kategorii/podkategorii w których przyznawane są nagrody  takich jak film, radio, druk, desing, mamy specjalizacje związane np. tylko z reklamami w grach, w mediach społecznościowych czy ilustracje webowe. Jest to o tyle istotne że jeszcze kilka lat temu nikt o tym nie myslał, a 10 lat temu reklama to była tylko telewizja, prasa i outdoor.
Ot taki kolejny element, który pokazuje, że cyfryzacja nie dotyczy tylko obiegu dokumentów, ale całego naszego życia. I stawiam wydajność nowego GTX Titan przeciwko CPU z pegasusa że jeszcze bedąc w pełni sił witalnych, dożyjemy tak wyczekiwanej, nie tylko przez Nexora ery posthumanizmu…

 

skąd brać materiały edukacyjne?

w IT od dawna funkcjonuje automatyczny forward na kwerendę ‚a jak to się robi?’ -> RTFM. w dzisiejszych czasach nawet nie trzeba za bardzo czytać – pojawiły się media audio i video, podcasty, webinaria i tak dalej. jest tego na prawdę dużo. do poczytania jet oczywiście:

  • cały technet dla ITPpro. czyli wszelkie step-by-stepy, installation guide, whitepapers, opisy funkcji i dużo, dużo więcej.
  • MSDN dla devów. czyli głównie SDK i dostęp do bebechów

są to jednak materiały bardziej dla PROsów. co z tymi, którzy zaczynają i chcieliby się nauczyć? tutaj w sukurs przychodzą materiały video. jeśli chodzi o polski site z prezentacjami w naszym ojczystym, gdzie warto zacząć naukę – jest virtualstudy. można tam znaleźć zarówno krótkie prezentacje jak całe serie – szkolenia.

 

sam Microsoft również dostarcza wiele fajnych projektów – channel9 na zasadzie vbloga z różnymi tematami, w szczególności Edge – jeden z fajniejszych ‚programów’ w TV9. ostatnio pobawiłem się w Microsoft Virtual Academy i muszę przyznać, że bardzo spodobała mi się idea. MVA jest wirtualną szkołą, gdzie dostarczane są pełne szkolenia z danego produktu. dodany jest też ciekawy sposób zachęcania do edukacji – punkty przyznawane za ścieżki, małe egzaminy przygotowujące do tych prawdziwych, za które również są punkty, możliwość tworzenia swojej ‚ścieżki nauki’. braqje jeszcze szkoleń do niektórych produktów a sam interfejs pozostawia trochę do życzenia, niemniej uważam, że produkt jest bardzo wartościowy. największą wadą na tą chwilę jest brak lokalizacji – całość przeznaczona jest dla tych, którzy z angielskim problemu nie mają. zgaduję, że w przyszłości pojawią się napisy tak, jak to ma miejsce np. w prezentacjach TED.

nic tylko siedzieć i się uczyć.

AFAIK nie ma innej firmy, która dostarczałaby taką ilość materiałów edukacyjnych dla swoich produktów. uważam, że to potężna broń, która bardzo mocno przyczynia się do popularności tych a nie innych produktów. chapeau bas.

eN.

Osobliwości IT

„Niepełna poczta”

To rozwiązanie jest teoretycznie poprawne technologicznie, ale w zaskakujący sposób utrudnia życie ludziom z niego korzystającym. Przyczyn upatruje nie tyle w złej woli autorów, ile sytuacji, która zmusiła ich do takiego rozwiania. Zatem:
Dana jest mała firma (50 osób), wykorzystująca wewnętrzny system pocztowy oparty na rozwiązaniu Lotus Notes (minuta ciszy, aby uczcić wszystkich wykorzystujących ten fantastyczny i beznadziejny zarazem system pocztowy, o którym można by stworzyć oddzielny szydzący z niego portal, ale na którego nie będę teraz wylewał wiadra pomyj, gdyż nie to jest teraz istotne). Więc firma i jej dzielni pracownicy korzystający z tego nieszczęsnego Lotusa potrzebują też poczty na telefonie.
Lotus hostowany jest wewnątrz organizacji, co było sensowne i konieczne gdyż był połączony z innym kluczowym dla funkcjonowania biznesu wewnętrznym systemem. Naturalną koleją rzeczy implementowany jest konektor do BlackBerry (kolejna minuta ciszy dla użytkowników BlackBerry…), gdyż zapewne to te telefony były pierwszymi „smartfonami z obsługą poczty”. Wszystko działa jak należy.

Technologia idzie jednak dalej i nie tylko garstka wybrańców ma już BlackBerry, ale także 90% pozostałych pracowników posługuje się smartfonami… z obsługą poczty i owi pracownicy też chcą mieć dostęp do firmowej poczty.
Uruchamiany jest zatem zewnętrzny, hostowany serwer pocztowy klasy POP3/SMTP….który staje się mail-relayem dla naszego lotusa. Konfiguracja wymaga utworzenia DODATKOWYCH, oddzielnych skrzynek pocztowych dla KAŻDEGO pracownika. Trochę ręcznej grzebaniny, ale NAGLE cel zostaje osiągnięty: użytkownicy smartfona w dowolnej technologii mogą podczepić swoją skrzynkę do telefonu i … Taadaam!!! Mają pocztę firmową w telefonie.

Teraz docieramy do sedna sprawy. Pracownicy, „dzięki” temu rozwiązaniu zostali podzieleniu na dwie grupy:
Szcześliwców z BlackBerry, którzy mieli i mają swoją pocztę w telefonie.
Resztę, korzystającą ze skrzynek POP3 z zewnętrznego relaya…. którzy mają pocztę firmową , ale BEZ WEWNĘTRZNEJ POCZTY FIRMOWEJ…. Tzn.: jeśli maila do nich przysłał klient: mail z wpada do telefonu ze skrzynki POP3 z relaya, ale jeśli maila wysłał współpracownik, albo nie daj boże prezes – mail już nie trafia do telefonu, gdyż Lotus nie wysyła w pizdu gdzieś na zewnątrz komunikacji, którą zamyka w wewnętrznym obiegu…
Mogę się tylko domyślać jak to wyglądało: pracownicy bez BlackBerry, mieli pocztę w telefonie, ale zawsze potrzebny był w pobliżu laptop, dzięki, któremu mogą sprawdzić pocztę „wewnętrzną”, albo wysyłają wewnętrzną pocztę firmową korzystając z adresów z relaya, dzięki czemu mają dwie tożsamości – „firmową-lotusową” i „firmową-zewnętrzną-na-pop3”, w obydwu przypadkach ubaw z poszukiwania „historii mailowej” – bezcenny.

Mówiąc szczerze nie mam pojęcia jak udało się ludziom przeżyć ten komunikacyjny koszmar (sytuacja z roku 2012, a firma należy do segmentu „wymagających” i nie chodzi o badylarzy handlujących warzywami).

Nie mam pojęcia jak udało się doprowadzić infrastrukturę do takiego stanu, ale zakładam jedno: nikt pewnie nie słuchał pana od IT, a ten musiał zrealizować postawione przed nim zadanie….

Rzeczywista historia może różnić się drobnymi szczegółami od przytoczonej, nie dojdę do nich, gdyż rozwiązanie zostało już zaorane i szczęśliwie to nie ja byłem na pierwszej linii sprzątających.

Szacunkowe wyniki sprzedaży Surface RT i Pro

Na Bloombergu ukazał się artykuł mówiący o szacunkowej sprzedaży Surface RT i Surface Pro – jest to o tyle ciekawe, że MS jak do tej pory nie opublikował żadnych danych odnośnie poziomu sprzedaży. Przechodząc do konkretów – wg źródeł Bloomberga od czasu premiery sprzedało się ok 1 mln Surface RT  i 400 tys sztuk Surface Pro.

Powyższe wartości są znacznie niższe od tego co szacował MS –  kilka różnych źródeł podawało, że wyprodukowano 3 mln Surface RT – czyli z tego wniosek, że 2 mln sztuk zalega na magazynach.

By te wartości miały swój kontekst – w 4Q 2012 sprzedano na całym świecie 52,5 mln tabletów z czego Apple sprzedało niecałe 23 mln.

Co więcej – w  2013 ma sprzedać się ok 200 mln tabletów (wzrost o blisko 50% rok do roku!). Również ten rok ma być pierwszym rokiem gdzie sprzeda się więcej tabletów niż notebooków.

Artykuł również nadmienia o sprzedaży notebooków w 1Q2013 – wyniki są…. słabe – sprzedaż notebooków  w 1Q2013 w porównaniu do 4Q2012 ma spaść (bo jeszcze kwartał nie zakończony) o 18% – licząc średnią z ostatnich 5 lat rok do roku jest to spadek o 9%

Cóż… era post PC in progress

 http://www.bloomberg.com/news/2013-03-14/microsoft-s-surface-tablet-is-said-to-fall-short-of-predictions.html

%d bloggers like this: