globalnie – nie prędko. z jednej strony możliwości PS się zwiększają z każdą wersją systemu, z drugiej strony – pozostają bez zmian dla wersji starych. potworny dualizm – jest wiele zapowiedzi, że będzie wycofane wsparcie konfiguracji TCP/IP z netsh, wmic – z drugiej strony po uruchomieniu w12 w wersji core nadal jesteśmy witani CMD – co jest zresztą dla mnie zupełnie niezrozumiałe /: . taki oto scenariusz, na który często trafiam:

trzeba coś zautomatyzować/zmienić u klienta. wersje serwerów – od W2k3R2 po w12. jakie mamy środowisko do tego?:

  • na w2k3R2 powershella nie ma w ogóle
  • na w2k8 jest, ale dla tej wersji była bardzo ograniczona liczna cmdletów
  • na w2k8R2 cmdletów jest więcej ale nadal są ograczniczone
  • na w12 jest ich na prawdę dużo, ale część operacji i tak trzeba wykonywać via stare commandlineowe toole.

i tak wybór jest pomiędzy:

  • zainstalować na wszystkich maszynach powershell. zadanie nietrywialne bo nie wszędzie jest v3, trzeba spełnic szereg wymagań, być może dograć jakieś moduły. sporo zachodu ale jeśli jest się adminem sieci to można się pobawić. jednak dla konsultanta – osoby z zewnątrz – jest to nieopłacalne.
  • być uniwersalnym – korzystać z VBS + CMD

finalnie – jeśli ma być uniwersalnie to trzeba sięgnąć do VBSa, co jest bolesne. po wygodzie i mozliwościach, jakie daje PS, grzebanie się w basicu jest ciężkim doznaniem.

niezrozumiałe dla mnie pozostaje:

  • czemu default shell w core to cmd
  • czemu PS nie jest poprawką obligatoryjną/sugerowaną dodatkową – w końcu to podstawowe środowisko zarządzania! na stronie opisującej WMF 3.o jest informacja iż nie jest kompatybilny z <tu całkiem spora lista>. niewątpliwie odpowiada to bezpośrednio na pytanie ‘czemu nie jest poprawką obligatoryjną’ ale rodzi pytanie – skąd te niekompatybilności?
  • czemu nie ma oficjalnych update’ów modułów do PS?

w efekcie, pomimo ostrego parcia w kierunq PS nie można mu zaufać – skrypty napisane na jeden system mogą nie działać na innym. brak jest spójności i jednego, porządnego środowiska.

Powershell basics mini-FAQ

  • jak sprawdzić wersję powershell:

$host.version

  • czy da się zupgradeować powershell do wersji 3 na wszystkich systemach?

po pierwsze to nie tylko PowerShell ale ‘Windows Management Framework’. na cały framework składa się kilka komponentów, wykorzystywanych na końcu łańcucha przez PS: BITS, WinRM i kilka innych komponentów, +oczywiście .NET framework. na staszych systemach trzeba więc zupdateować i pozostałe komponenty.

dla w2k8, w2k8R2 i w7 da się – można zaciągnąć z download center
dla wersji 2k3/XP SP3 jest tylko v2 i nowszej nie będzie

  • jak sprawdzić dostępne moduły

get-module –listAvailable

użytkownika: userdocumentswindowspowershellmodulesmymodule
systemowe: windowssystem32windowspowershellV1.0modulesmymodule

  • skąd wziąć moduły?

sporo jest na codeplexie. jedno z fajniejszych repozytoriów jest na technetowym wiki.

eN.