Uvod u PowerShell
PowerShell je razvijen od strane Microsofta, verzija 1.0 datira još od 2006. godine. Sada, kao ubrzo punoljetan program, PowerShell je već dugo vremena etabliran među Windows sistem administratorima. Za windows administratore, razna automatizacija procesa i mogućnosti udaljene kontrole pomoću Windows remote managementa (WinRM), o kojemu je već pisano u našem blogu, praktički su nebrojene. Ako poznajete linux ‘terminal’ i command line, PowerShell je suštinski vrlo sličan.
Time je u tom segmentu odavno premošten jaz između unix-like poklonika ‘terminala’ operativnih sustava i korisnika Windowsa. Bez obzira radi li se o Windows Desktop okruženju ili o serverskim verzijama operativnog sustava na kojima je jednako podržan. Unošenje komandi putem tipkovnice umjesto kretanja kroz gomilu prozora, klikanja mišem i skrolanja kroz raznorazne liste, sa sobom naravno povlači poznavanje operativnog sustava, kako bi ga održavali i njime mogli upravljati putem PowerShell konzole.
Ipak, to je samo mali segment i ne znači da je PowerShell rezerviran samo za okorjele svemoguće sys admine. Ovdje se radi o alatu za koji postoji sustavna interaktivna Help platforma i pomoću kojega je također moguće obavljati svakakve, uobičajene, neuobičajene i repetitivne taskove različite namjene.
Sasvim sigurno bi PS trebao biti interesantan i Linux entuzijastima koje zanima implementacija shell sučelja na Windowsima te onima koji promiču tipkovnicu kao pojam brže interakcije između čovjeka i uređaja.
-
PowerShell Komande
U PS-u je moguće unositi liniju naredbi, među linuksašima poznate kao ‘onelinere’ pa i pomoću paste-a iz clipboarda (desnim klikom), ali i kreirati skripte čija je standardna ekstenzija ‘.ps1’, koje je najbolje kreirati u PowerShell ISE programu.
Naredbeni dio je CmdLet objekt za koje pojedinačno pojašnjenje funkcija i primjere u PowerShell-u uvijek možemo pozvati unosom riječi help prije samog CmdLet-a, na primjer:
Code: help Get-ChildItem
Potrebno je napomenuti kako PowerShell ima podosta aliasa kojima se pisanje CmdLet-a može skratiti – neki su proizašli iz Unix-like operativnih sustava, primjer izlista sadržaja trenutne mape u kojoj se nalazimo:
Get-ChildItem = gci = ls
Primjer naredbe u PowerShell-u:
gci . -filter *.txt -recurse | select-string "ponedjeljak"
Ovdje imamo primjer popularnog ‘pajpanja’, drugim riječima prosljeđivanja rezultata jedne naredbe u drugu Ovom konkretno pretražujemo sadržaj datoteka s ekstenzijom .txt na riječ ‘ponedjeljak’.
Kao i na Linux terminalu, PS ima opciju pretrage prethodno unesenih naredbi pomoću strelica gore – dole i ‘Ctrl+r’ s unosom nekoliko slova i ponavljanjem kombinacije ‘Ctrl-r’.
-
Skripte za PowerShell
Sa skriptama će se korisnici često susretati na raznim forumima i dediciranim sajtovima. PowerShell skripte je naravno preporučljivo preuzimati isključivo s provjerenih stranica kakvih je do danas poveći broj – od onih Microsoftovih pa na dalje – do raznih foruma kakve god je moguće pronaći na internetu.
Slika 2. Mega kolekcija PS skripti, Link:
GitHub – fleschutz/PowerShell: Mega collection of 500+ useful cross-platform PowerShell scripts.
-
PowerShell ISE
PS ima i svoju interaktivnu inačicu naziva PowerShell ISE. Ista u gornjem dijelu sadrži standardni meni, polje za unos skripti, PowerShell konzolu ispod toga, sustav pomoći i interaktivnu i opširnu tražilicu s CmdLet modulima s desne strane.
PS skripte je nakon unosa moguće startati putem već uvriježene funkcijske tipke F5. Time dobivamo rezultat i prikaz eventualnih grešaka u donjem prozoru gdje je prikazana konzola.
Sam sustav pomoći prilikom unosa komandi, kojega je moguće redovito ažurirati kroz sam PowerShell, vrlo je iscrpan i na raspolaganju prilikom korištenja PowerShella ISE. Posebno se to odnosi na izbor modula širokog raspona. Od jednostavnog kopiranja datoteka i zipanja, do sasvim kompleksnih radnji i taskova.
Kroz PS možemo kreirati više mapa odjednom i kopirati datoteke iz zadane u drugu mapu:
Primjer skripte:
- Set-Location [PATH1]
- Get-ChildItem -Recurse -Filter *.[EXT] | Copy-Item -Destination [PATH2]
Nakon kopiranja, učitavamo modul Compress-Archive koji nam nudi parametre za nivo i path do zip arhive:
Primjer PS ZIP komande:
Compress-Archive -DestinationPath [PATH3]\[IME].zip -Path [PATH2]\*.* -CompressionLevel Fastest -Confirm
Više o ovoj temi možete saznati i na sljedećim stranicama:
PowerShell Dokumentacija- PowerShell | Microsoft Learn
Windows PowershellOwner’s manual
Kolekcija free PowerShell skripti
Možemo zaključiti kako je PowerShell do danas nezamjenjiv alat. Svakako sve više pronalazi svrhu i u svakodnevnim taskovima na Windows operativnom sustavu. Time je kao alat preporuka korisnicima Windowsa. Na internetu postoji veliki community s mnogobrojnim primjerima i edukacijskim programom za njegovo korištenje. To će sigurno dobro doći svima koji žele dublje proniknuti u materiju. O ovoj temi ćemo i ubuduće i više pisati na našem blogu te Vas pozivamo da naš blog redovito pratite, a pogotovo PowerShell kategoriju!