I znowu po MTS...

Nie wiem sam, czemu to tak szybko... Bardzo dziekuje wszystkim, którzy zdecydowali sie na posluchanie mojej sesji. Pustek na sali nie bylo i zapewniam Was, ze nie ma dla prelegenta lepszej nagrody. Oceny i statystyki tez sie licza, ale wypelniona sala ma dla mnie wieksza wartosc.

Dziekuje równiez uczestnikom konkursu Speaker Idol. Mimo, ze mój osobisty faworyt nie wygral, to i tak oceniam, ze caly konkurs warty byl energii wlozonej w pomoc przy organizacji, namawiania wahajacych sie, zabiegania o promocje i chodzenia w zielonej koszulce. Byliscie swietni a ja po fakcie moge sie przyznac, ze zasiadanie w komisji Speaker Idol od zawsze bylo moim marzeniem.

No a teraz do rzeczy.

Pokazalem kilka prostych polecen PowerShell i oceniam, ze mimo luznego zwiazku z tematem sesji, warto je tu przytoczyc dla pamieci.

Poleceniem pierwszym bylo import-module ActiveDirectory. Proste w swojej postaci i pozwolilo nam skorzystac z rozszerzen obslugujacych AD, dzieki czemu mozliwe bylo cd AD: Wewnatrz AD tez mozna robic cd, ale pamietajcie, ze cd, to alias do Set-Location. Sciezki, do których przechodzi sie w AD podaje sie zawsze po ich Distinguished Name.

Drugi cykl polecen opieral sie na Get-WMIObject win32_volume. Z kilku teoretycznych powodów, WMI nie jest najlepszym przykladem dla remotingu, ale czytelnie ilustruje cala idee.

Zeby wykonac powyzsze polecenie na zdalnym komputerze (u mnie nazywal sie on W7ENT), nalezy uzyc Issue-Command W7ENT {Get-WmiObject win32_volume}

Powyzsze polecenie zwrócilo wszystkie wlasciwosci wszystkich wolumenów. Aby odfiltrowac tylko te oparte na NTFS, skorzystalem z polecenia icm w7ent {Get-WmiObject win32_volume} | Where-Object {$_.filesystem -eq "ntfs"}
Polecenie icm jest wbudowanym w PowerShell aliasem do Issue-Command a w trakcie prezentacji szybciej sie je wklepuje.

Poniewaz powyzsze zapytanie zwrócilo wiele ciekawej, ale w tym przypadku bezuzytecznej informacji, odfiltrowalem tylko to, co mnie interesowalo
icm W7ENT {Get-WmiObject win32_volume} | Where-Object {$_.filesystem -eq "ntfs"} | select name, freespace

Pózniej dodalem jeszcze jeden filtr i dodatkowy komputer, otrzymujac w koncu nieco tasiemcowe polecenie

icm DC01,W7ENT {Get-WmiObject win32_volume} | Where-Object {$_.filesystem -eq "ntfs"} | select systemname, name, freespace | where-object {$_.freespace -lt 100000000}

Na koniec pokazalem jeszcze prosty skrypt dostepny dzieki modulowi ServerManager

Import-Module ServerManager

Get-WindowsFeature

Z prostym filtrem:

Get-WindowsFeature | Where-Object {$_.Installed}

I dla porównania

Get-WindowsFeature | Where-Object {!$_.Installed}

Pamietajcie prosze, ze funkcjonalnosc zdalnego uruchamiania polecen PowerShell wymaga wlaczenia. Domyslnie jest wylaczona. Polecenie winrm quickconfig (z commandline) powinno zalatwic sprawe szybko i skutecznie.

I na koniec, powtórze jedna sugestie i jedna prosbe. Obie pojawily sie na mojej sesji:

  1. Uczcie sie PowerShella. To ma przyszlosc.
  2. Ocencie MTS i wszystkie sesje na https://www.mts2009.pl

Autor: Grzegorz Tworek [MVP]