Tehnopolis

Petak, 29.01.2010.

16:47

Windows PowerShell

Neobičnom igrom tehnologije, ono što su mnogi prije petnaest godina popljuvali i napustili, vraća se višestruko osnaženo. Komandna linija više nije fosil prošlosti, već alat od izbora za prave Microsoft profesionalce! Gospodo, dobar vam dan!

Radoslav Dejanović, Monitor.hr

Default images

Dozvolite da vam ispričam jednu malu usudbenu povjesticu. Prije petnaestak godina, dok sam još bio mlad i naivan, zainteresirao sam se za – Linux (o kojem ovdje ipak nije riječ). Relativno svjež sa MS-DOS-a, nisam pretjerano obožavao Windows 3.1, proizvod kojeg sam smatrao tek pukom grafičkom nadogradnjom na DOS (što on zaista jest bio), a kliketanje mišem, iako simpatično, nije mi bilo tako fenomenalno dobro kao, priznajem, većini ljudi. Izlaskom Windowsa 95 većina se pretvorila u veliku većinu, a gotovo preko noći grafičko sučelje postalo je i ostalo nova paradigma računalništva. Usput, primjetio bih kako je te godine izlazak Windowsa 95 bio svjetska senzacija ravna Appleovom predstavljanju prvog iPhone-a, a i rezultati su bili vrlo slični: opća pomama i oduševljenje.

Okamine daleke informatičke prošlosti

No, da... otprilike u to vrijeme pojavila se u računalnom puku snažna odbojnost prema komandnoj liniji, odnosno naredbenom retku. Takoreći preko noći mnoštvo kvalitetnih programa postalo je okaminama daleke informatičke prošlosti, zajedno sa ljudima koji su koristili naredbeni redak. Tako sam i ja ostao okamenjen u diluvijalnim nanosima POSIX specifikacije, tvrdoglavo naviknut na izvrsne i stabilne programe čiji je jedini grijeh bio to što se nisu izvršavali u grafičkom sučelju. Uistinu, Linux je već i tad imao grafičko sučelje X Window System, skraćeno X (kojeg, u relativno istim okvirima, koristi i danas), ali i dalje sam na to gledao kao na razbacivanje resursima, pa sam grafičko sučelje pokretao samo zbog Netscape Navigatora.

Windowsaši su imali pomalo posprdan (i svakako superioran) stav prema mojoj tvrdoglavosti. “Gledaj”, pričali su mi, “ja mogu tako jednostavno napraviti prozor i u njemu program”. Uzvraćao sam im linijama koda potrebnim za obavljanje identične operacije – ali to je bila bitka unaprijed izgubljena. Sve veće bogatstvo resursa računala uzrokovalo je, da tako kažem, programerski pad u dekadenciju. Čemu pisati brze i kratke programe kad imamo megabajte i megahertze koji plaču da budu iskorišteni?

Naredbeni redak postao je izgnanik

uvijek sam poklonik ideje kako je probleme elegantnije, često i lakše riješiti korištenjem kombinacije manjih programa koji svaki radi jednu stvar, ali ju radi dobro. Ta je filozofija nastala u zlatno doba UNIX-a i eto, živi još i danas. Njoj je suprotstavljena upravo ideja programera koji otvori prozor, pa u njega krene stavljati kontrole, vući relacije, puniti objekte... kako bi na kraju završio sa jednim ogrometnim programom koji sve obavlja sam.

Trend na Microsoftovoj platformi bio je izrada velikih, sveobuhvatnih programa, više ili manje monolitnih zdanja, koji se nisu rado osvrtali na druge programe: svijet bez kooperacije. I strogo grafički orjentiran. Ništa loše u tome, ali s godinama izgubila se umješnost dobrog informatičara da iz glave napiše kobasicu teksta koja u tren riješi specifičan problem. Naredbeni redak postao je izgnanik, ružni crni prozor kojeg se poziva samo iz ljute potrebe.

Budućnost je stigla, i nije crna – plava je

Simpatično izražavanje tog stava doživio sam dok sam grupi srednjoškolskih profesora držao tečaj Linuxa. Zamišljen da nastavnicima pruži dobro osnovno znanje, tečaj je bio pun objašnjenja o datotečnom sustavu, datotekama, pravima, dozvolama, osnovnim naredbama... i najvećim dijelom u zloglasnoj komandnoj liniji. Nakon što više nije mogla otrpjeti oktalne brojeve, r,w i x, jedna profesorica rekla je otprilike: “Dosta nam je crne komandne linije! Želimo grafičko sučelje! Dajte nam budućnost, prestanite nam pričati o prošlosti!”

Danas imam lijepo iznenađenje za tu profesoricu: zove se Windows PowerShell, a riječ je o – naredbenom retku. Pravom pravcatom naredbenom retku vrlo sličnom tipičnom naredbenom retku Unixoida. Budućnost je stigla, i nije crna – plava je. Na plavoj pozadini ispisujete naredbe, one vam nešto vraćaju, vi sretni i zadovoljni, budućnost je stigla.

Neobičnom igrom tehnologije, ono što su mnogi prije petnaest godina popljuvali i napustili, vraća se višestruko osnaženo. Komandna linija više nije fosil prošlosti, već alat od izbora za prave Microsoft profesionalce! Gospodo, dobar vam dan! :-)

Naredbeni redak se vratio, jači nego prije

Windows PowerShell svojevrsna je zamjena za arhaični i ne pretjerano moćan “Command line” naredbeni redak. No, za razliku od starog retka koji je mogao izvršavati programe i imao tek rudimentarne mogućnosti programiranja, novi naredbeni redak moćan je alat kojim spretan administrator na Windows računalu može napraviti gotovo sve. Za razliku od starog pretka, PowerShell sa pravom nosi svoj naziv: osim izvršavanja naredbi, omogućuje izvrsno skriptno programiranje sa punim setom upita, grananja i petlji (if-then-else, while, do, for, foreach), varijable, sve što ozbiljan skriptni jezik treba – i za nekoliko magnituda moćnije od svog pretka. Pisanje skripti u PowerShellu nije nabadanje jednostavnih naredbi u batch datoteci, već punokrvno programiranje u rangu bilo kojeg drugog skriptnog jezika. Dapače, kroz PowerShell provlače se .NET klase (cmdlet) koje mu daju široku funkcionalnost, a jednako tako lako dohvatljivi su COM i WMI.

Za ljude koji nisu programeri, PowerShell mogao bi se opisati kao naredbeni redak u kojem je na jednostavan način moguće dohvatiti gotovo cjelokupnu funkcionalnost Windowsa (ali i drugih programa, poput MS Exchange primjerice), brzo i jednostavno.

Pogledajmo primjer iz Wikipedije: stroj vam je preopterećen i želite ugasiti sve programe koji troše više od gigabajta memorije? Možete otvoriti task manager, sortirati po potrošnji, te klikanjem na proces, pa zatim na “End task” redom pogasiti sve takve procese.

Iskusan PowerShell korisnik učinit će to za petnaestak sekundi ovakvom linijom:

PS> get-process | where-object { $_.WS -gt 1000MB } | stop-process -whatif

Možda vam na prvi pogled ova kobasica izgleda zbunjujuća i komplicirana, no ona je zapravo vrlo jednostavna: naredbom get-process dobijete popis programa koji su pokrenuti na računalu; taj rezultat proslijedit ćete (kroz tzv. “pipe”: | ) drugoj naredbi where-object koja će preuzeti popis i u njemu ostaviti samo one koji zauzimaju više od 1000MB memorijskog prostora; taj popis će, najzad, biti proslijeđen naredbi stop-process koja će zaustaviti sve programe s popisa.

Opcija “-whatif” signalizira naredbi da samo prikaže koji bi bio rezultat izvršavanja naredbe, ali ne i da ju zaista izvrši. Želite li zaista pobiti procese, trebate iz navedene linije obrisati tu opciju.

Naredbenom redu nevični korisnici za brisanje mnoštva aplikacija kroz Task Manager trebat će puno više vremena od iskusnog administratora koji ovakvu kobasicu “istrese iz rukava”.

Moć PowerShella bez premca na Microsoftovoj platformi

No, nisu samo takvi jednostavni trikovi adut PowerShella: pravu snagu iskazuje u skriptama, gdje administrator može u velikoj mjeri automatizirati poslove koje je prije rješavao interaktivnim radom za računalom. Ključna riječ je automatizacija. Naravno da nitko neće odustati od grafičkog sučelja i sve poslove obavljati isključivo u PowerShellu, ali moć i fleksibilnost ovog alata nema premca na Microsoftovoj platformi.

Zanimljivo je i kako je PowerShell snažno integriran u MS Exchange 2010: kod jednog smo klijenta instalirali MS Exchange 2010 sa Venturom kao medijatorom prema Internet servisima. Management konzola je pomalo konfuzna u odnosu na starije verzije, ali zanimljiv je način na koji stvar radi: nakon što isklikate željene opcije, konzola stvori kobasicu od naredbenog retka koju zatim proslijediPowerShellu. Drugim riječima, Exchange možete administrirati iz komandne linije (pa i sa udaljenog računala) jednako efikasno kao i iz grafičkog sučelja. Na volju vam.

Svojim mogućnostima PowerShell je u klasi najboljih Unix ljuski. Šteta što je Microsoftu trebalo više od desetljeća da shvate kako “ružni crni ekran prošlosti” itekako ima smisla.

Ovo je arhivirana verzija originalne stranice. Izvinjavamo se ukoliko, usled tehničkih ograničenja, stranica i njen sadržaj ne odgovaraju originalnoj verziji.

Komentari 3

Pogledaj komentare

3 Komentari

Možda vas zanima

Svet

Orban: To je objava rata

Mađarski premijer Viktor Orban izjavio je danas da bi svaki pokušaj posezanja za zamrznutim ruskim sredstvima predstavljao "objavu rata".

19:57

13.12.2025.

15 h

Podeli: