poniedziałek, 13 kwietnia 2009

Obiektowy Windows PowerShell 1,0

Powłoka systemowa (ang. shell), to najstarszy interfejs systemów operacyjnych. Jest to też jeden z najstarszych mechanizmów systemów jaki przetrwał do dziś - choć jego rola znacznie zmalała na rzecz interfejsów graficznych.

Jednak od czasów „epoki kamiennej” (w informatyce), rozwój powłok jest cały czas widoczny, już w latach 80. zarówno w Unixach jaki w DOS (w tym w DOSach na małe Atari), pojawiało się wiele ważnych rozwiązań, które ułatwiały pracę użytkownikom. Właściwie co sprzęt i system to zupełnie inne rozwiązania, w tym wiele było naprawdę wartościowych - choć często zapomnianych.

W 2006 roku i firma Microsoft doceniła znaczenie oraz istotę rozwoju tego niemal zapomnianego narzędzia (przez większość typowych użytkowników Windows). Właśnie w tym roku został wydany PowerShell, który jest obecnie dostępny dla Windows XP SP2, Windows Server 2003, Windows Vista, Microsoft Exchange Server 2007 oraz w Windows 2008 znajduje się jako cecha opcjonalna (nie instalowana automatycznie).
W .NET Framework PowerShell jest zintegrowany i umożliwia środowisko wykonawcze dla zadań administracyjnych wykonywanych poleceniami cmdlets (opis wybranych poleceń na Wikipedii).

Jak czytamy w Wikipedii:
    Od 2008 roku, common criteria (lista warunków, które muszą zostać spełnione) dla wszystkich produktów serwerowych Microsoft zawiera zarządzanie przez PowerShell. Oznacza to, że przy pomocy interpretera poleceń wykonać można każde działanie administracyjne na każdym współczesnym produkcie. Dzięki temu znacząco ujednolica i upraszcza się skryptowe zarządzanie środowiskiem.
Jedną z najciekawszych cech PowerShella jest jego obiektowa logika funkcjonowania, która świetnie wpisuje się we wspominany trend, ciągłego rozwoju powłok, a przeistoczenie w stronę obiektową (w stosunku do wcześniejszego np. command.com) również jest charakterystycznym kierunkiem rozwoju. Jak czytamy w Wikipedii:
    (...) Wynikiem każdego polecenia nie jest ciąg znaków na ekranie, ale obiekt określonego typu. W przypadku braku wskazania, co z danym obiektem należy zrobić, faktycznie część jego właściwości wyświetlana jest na ekranie. Możliwe jest jednak bardziej zaawansowane wykorzystanie metod i właściwości zwróconego obiektu. Przykładowo polecenie Get-ChildItem (lub jego alias dir albo ls) na pierwszy rzut oka zwraca listę plików i katalogów w bieżącej lokalizacji. Z otrzymanej przez Get-ChildItem | Get-Member listy, widać jednak, że można łatwo zastosować metodę Delete, bądź sięgnąć do właściwości LastAccessTIme czy Attributes.
Oraz:
    Warto również zwrócić uwagę, że praktycznie każda funkcja dostępna przez API systemu (czyli de facto każda rzecz, którą w systemie Windows można zrobić) jest możliwa do wywołania z PowerShell. Oznacza to, że nie ma takiej rzeczy związanej z zarządzaniem systemem, której nie dałoby się wykonać poprzez skrypt PowerShell.

Temat opisuję, gdyż DAK właśnie bawił się tą zabawką ;) Mianowicie zrobił update swojego win 2k3 x64 i w zakładce oprogramowanie dodatkowe odnalazł Windows PowerShell w wersji 1.0 - rozmiar 2,2 MB.

Windows PowerShell na Microsoft Update (w IE 8)

DAK zwraca uwagę, że pod Windows PowerShell, dostępne są również liczne polecenia znane z Unixów. Popiera to domniemaną teorię, że Microsoft od 30 lat nieudolnie próbował (i to bardzo powoli) kopiować funkcjonalność produktów konkurencyjnych - czyli po prostu starał się dorównać jakością swoich produktów do konkurencji.

Najśmieszniejsze jest to, że szczególnie od czasów pojawienia się Windows NT, bardzo nasiliły się wojny klanowe pomiędzy miłośnikami Windows NT a Unixowcami (czyli w momencie gdy Windows stawał się powoli równie zaawansowanym systemem jak Unix). Paradoksalnie okazuje się, że Windows NT był pisany przez unixowców, czyli zawiera w swoim wnętrzu wiele z mechanizmów, rozwiązań i architektury Unixa... jednak mało kto o tym wie, bo Windows jest produktem komercyjnym, którego wszelkie prawa i sekrety są pilnie, a nawet chorobliwie strzeżone przez Microsoft (a szczególnie chorobliwie były strzeżone np. we wczesnych latach 90. w których to nawet pracownicy uczelni państwowych nie dostawali elementarnych informacji o systemie Windows - dziś te informacje są ogólnodostępne choćby poprzez MSN).
Sprawa się wydała na przełomie wieków, gdy mój znajomy hacker zdobył źródła Windows i powiedział, że nie ma wątpliwości, że został napisany przez unixowców;)

"cat" w Windows PowerShell 1.0

Dziś po kilkudziesięciu latach nieprawdopodobnego zacofania zarówno systemów Windows jaki jego wiersza poleceń - okazuje się, że Microsoft opracował coś czego trudno nie docenić (choć już widzę wirusy z rozszerzeniem PS1 itp. :D ). Czyli ten niezwykle zacofany, prymitywny i nieintuicyjny produkt Microsoftu znów powtórzył historię, czyli z nic nieznaczącego stał się wielki i dojrzały.
Ot i mamy potęgę ekonomii: wciskać ludziom szmelc, wzrosnąć do rozmiarów giganta i posiąść pozycję lidera.

Jednak interesujący produkt lub nawet najbardziej rewolucyjny - wcale nie musi się przyjąć... bo przecież ciekawe podejście nie musi się równać np. wygodzie pracy itp.


Dzięki DAK za materiały !

Brak komentarzy:



Jeśli nie jest zaznaczone inaczej (lub nie jest zaznaczone wcale) zamieszczone ilustracje pochodzą z Wikimedia Commons lub są mojego autorstwa.


Ta strona używa cookies oraz innych technologii Google (i innych firm w specjalnych dodatkach po prawej stronie) w celu prawidłowego działania tej stronki (jej elementów jak np. ankiety, reklamy itp.) oraz zbierania statystyk. Korzystanie z tego bloga powoduje zapisywanie typowych plików na Twoje urządzenie (np. komputer, tablet itp.) o ile w ustawieniach przeglądarki nie zmienisz tego.

W UE się ludziom w głowach przewraca, więc dla świętego spokoju zamieściłem to absurdalne ostrzeżenie...