POWERSHELL - UVOD

Iako se različite verzije Windowsa u praksi prije svega koriste preko grafičkog korisničkog sučelja, to ne znači da napredniji korisnici ne mogu upotrebljavati alternativni način izvođenja istih operacija – upisivanjem odgovarajućih naredbi operativnog sustava. Već od prvih verzija Windowsa korisnicima je na raspolaganju osnovni alat za upis i izvođenje naredbi (Command Prompt), a od 2006. godine dostupan je napredniji alat pod nazivom PowerShell. Prve implementacije novog alata bile su ugrađene u tada aktualne verzije Windowsa: Windows Vista, Windows XP i Windows Server 2003.

 

Od tada je PowerShell stalno unapređivan, zbog čega su se kontinuirano pojavljivale nove verzije. Verzija 5.1 ugrađena je u trenutačno aktualne Windowse 10 od 2016. godine. Iste godine Microsoft donosi odluku da će verzija 6.0 postati dostupna kao alat u javnom vlasništvu za druge operativne sustave (macOS i više verzija Linuxa).

 

slika01.png

Slika 1.  Provjera verzije Powershell u instalaciji Windowsa pomoću $PSVersionTable

 

Prilikom razvoja novih verzija Microsoft nastoji održati kompatibilnost prema unatrag, kako bi se i u najnovijim verzijama mogle izvoditi starije naredbe i skripte. Trenutačnu verziju alata PowerShell instaliranu na vlastitom računalu možete provjeriti korištenjem naredbe $PSVersionTable. Rezultati dobiveni na računalu korištenom za pripremu ovog teksta prikazani su na prethodnoj slici.

 

Iako se PowerShell može koristiti za izvođenje pojedinačnih naredbi, najveće prednosti pokazuje tijekom korištenja različitih vrsti skripti s većim brojem naredbi i parametara namijenjenih automatizaciji različitih zadataka, odnosno za pregled i upravljanje konfiguracijom operativnog sustava. Prilikom pripreme skripti mogu se koristiti različite dodatne mogućnosti alata, kao što su varijable, polja, kontrolne strukture, objektna proširenja i ostalo. Upravo su to teme kojima ćemo se pozabaviti u sljedećim nastavcima serijala.

 

U današnjem (uvodnom) tekstu demonstrirat ćemo nekoliko osnovnih mogućnosti u korištenju alata  PowerShell, a u sljedećim nastavcima prikazat ćemo ostale naprednije mogućnosti.

 

slika02.png

Slika 2.  Pokretanje PowerShella u ulozi administratora sustava

 

PowerShell se može pokrenuti na različite načine. Na prethodnoj slici prikazano je pokretanje preko početnog izbornika Start. Pri tome je dobro koristiti mogućnost pokretanja u ulozi administratora, kako bi na izvođenje različitih naredbi što manje utjecala trenutačno dostupna prava u izvođenju naredbi.

 

Za svaku od dostupnih naredbi postoji vrlo detaljno objašnjenje njezinog korištenja, za što se koristi naredba Get-Help. Na primjer, za upute o korištenju naredbe Get-Command treba upisati:

 

Get-Help Get-Command

 

Nakon čega se dobije sljedeći rezultat:

NAME
    Get-Command

SYNOPSIS
    Gets all commands.

 

SYNTAX
    Get-Command [[-Name] <String[]>] [[-ArgumentList] <Object[]>] [-All] [-CommandType {Alias | Function | Filter | Cmd
    let | ExternalScript | Application | Script | Workflow | Configuration | All}] [-FullyQualifiedModule <ModuleSpecif
    ication[]>] [-ListImported] [-Module <String[]>] [-ParameterName <String[]>] [-ParameterType <PSTypeName[]>] [-Show
    CommandInfo] [-Syntax] [-TotalCount <Int32>] [<CommonParameters>]

    Get-Command [[-ArgumentList] <Object[]>] [-All] [-FullyQualifiedModule <ModuleSpecification[]>] [-ListImported] [-M
    odule <String[]>] [-Noun <String[]>] [-ParameterName <String[]>] [-ParameterType <PSTypeName[]>] [-ShowCommandInfo]
     [-Syntax] [-TotalCount <Int32>] [-Verb <String[]>] [<CommonParameters>]

 

slika03.png

Slika 3. Ažuriranje uputa na najnoviju verziju pomoću naredbe Update-Help

 

Kako bi se stanje uputa održalo ažurnim, povremeno se može napraviti njihovo usklađivanje s online sadržajem. Za to se koristi naredba:

 

Update-Help

Podešavanje izgleda i načina korištenja alata PowerShell izvodi se pomoću naredbe Properties dostupne u sistemskom izborniku.

 

slika04.png

Slika 4. Podešavanje izgleda i načina korištenja alata PowerShell

 

Za izbjegavanje upisivanja ranije korištenih naredbi može se koristiti privremeni spremnik  izvedenih naredbi. Po spremniku naredbi može se kretati pomoću strelica prema gore ili

prema dolje (na tipkovnici) te pritiskom tipke Enter na izabranoj naredbi. Također, upisivanjem znaka # i početnih slova naredbe detaljno se prikazuje ranije izvedena naredba koja započinje upravo tim slovima (ako takva postoji).

 

Kod kraćih naredbi brzo pronalaženje neke od prethodno izvedenih naredbi umjesto njihovog ponovnog upisivanja i nije toliko presudno za brzinu rada. Međutim, kod naredbi koje sadrže čitav niz dodatnih parametara potrebnih za pravilno izvođenje, situacija se bitno mijenja u korist korištenja povijesti naredbi. Pregled svih naredbi trenutačno spremljenih u spremnik može se dobiti korištenjem naredbe:

 

Get-History

 

  Id CommandLine
  -- -----------
   1 cls
   2 help
   3 Get-Help Get-Command
   4 cls
   5 #
   6 cls
   7 Get-Help Get-Command
   8 Get_commands
   9 Get-History
  10 cls

 

Pregled svih dostupnih naredbi u alatu PowerShell može se dobiti korištenjem naredbe:

 

Get-Command

 

Cmdlet          Get-AppvClientPackage                              1.0.0.0    AppvClient
Cmdlet          Get-AppvPublishingServer                           1.0.0.0    AppvClient
Cmdlet          Get-AppvStatus                                     1.0.0.0    AppvClient
Cmdlet          Get-AppxDefaultVolume                              2.0.0.0    Appx
Cmdlet          Get-AppxPackage                                    2.0.0.0    Appx
Cmdlet          Get-AppxPackageManifest                            2.0.0.0    Appx
Cmdlet          Get-AppxProvisionedPackage                         3.0        Dism
Cmdlet          Get-AppxVolume                                     2.0.0.0    Appx
Cmdlet          Get-AuthenticodeSignature                          3.0.0.0    Microsoft.PowerShell.Security
Cmdlet          Get-AzureAccount                                   5.1.2      Azure
Cmdlet          Get-AzureAclConfig                                 5.1.2      Azure
Cmdlet          Get-AzureAffinityGroup                             5.1.2      Azure
Cmdlet          Get-AzureApplicationGateway                        5.1.2      Azure

 

Spremnik ranije izvedenih naredbi vrijedi tako dugo dok je otvoren prozor alata PowerShell. Zatvaranjem prozora te njegovim ponovnim otvaranjem u novoj instanci alata automatski se gube sve prethodno izvedene naredbe iz spremnika naredbi.

 

Osim za izvođenje različitih naredbi, PowerShell se može izravno koristiti za izračunavanje različitih izraza, pri čemu je dozvoljeno korištenje heksadecimalnih vrijednosti ili jedinica kapaciteta memorije. Na primjer, ispravni izrazi su:

 

> 2 + 3 * 6
20

> 8GB / 1024MB
8

> 1 + 0xFF
256

 

Nakon pokretanja, u alatu PowerShell dostupan je i čitav niz varijabli okruženja čiji se trenutačni sadržaj može dobiti izvođenjem naredbe:

 

Get-Childitem env:

 

Name                           Value
----                           -----
ALLUSERSPROFILE                C:\ProgramData
APPDATA                        C:\Users\Srce\AppData\Roaming
CommonProgramFiles             C:\Program Files\Common Files
CommonProgramFiles(x86)        C:\Program Files (x86)\Common Files
CommonProgramW6432             C:\Program Files\Common Files
COMPUTERNAME                   HP640G4
ComSpec                        C:\Windows\system32\cmd.exe
DART_SDK                       C:\Program Files\Dart\dart-sdk
HOMEDRIVE                      C:
HOMEPATH                       \Users\Srce
JAVA_HOME                      C:\Program Files (x86)\Java\jdk1.8.0_192
LOCALAPPDATA                   C:\Users\Srce\AppData\Local
LOGONSERVER                    \\HP640G4
MSMPI_BIN                      C:\Program Files\Microsoft MPI\Bin\

 

Osim osnovnih naredbi, njihovih parametara, kontrolnih struktura i objektnih proširenja, skripte za izvođenje mogu se pisati i u jeziku VBScript. Evo primjera upisa i izvođenja koda VBScripte.

 

slika05.png

Slika 5. Primjer izvođenja VBSkripte

 

Priprema skripte:

Notepad test.vbs

 

Sadržaj skripte:

result = InputBox("Upišite vaše ime")

WScript.Echo "Hello " + result

 

Izvođenje skripte:

Cscript.exe .\test.vbs

Hello Nenad

 

U prethodnom primjeru dio .\test.vbs označava da se datoteka koju treba izvesti nalazi upravo u trenutačno aktivnoj mapi. Bez navođenja oznake za trenutačnu mapu skripta se pokušava pronaći samo u okviru putanja navedenih u varijabli okruženja Path. Naravno, po potrebi, njezin sadržaj može se promijeniti dodavanjem nove mape za pretraživanje. Na primjer,

 

$env:path += “;C:\Windows\system32”

 

Sljedeći put prelazimo na naprednije mogućnosti korištenja alata PoweShell.

Kategorija: