Uvod u Powershell i par osnovnih komandi

Nisam do sada pisao o jednom vrlo moćnom alatu koji je uveden negde krajem 2006 godine, ali je 2009 izašla stabilna verzija 2.0, dok je 19 septembra 2011 bila predpremijera v 3.0 koju smo imali prilke i da vidimo na Sinergiji 2011. Powershell se zasniva na .net Framework-u i predstavlja objektno orijentisani shell i skripting jezik namenjen sistem admnistratorima i uključen je u sve novije Microsoft operativne sisteme, kako klijentske tako i serverske.

Primedba: Kod server core verzija PS je opciona komponenta.

Lično sam PS počeo da koristim posle Sinergije 09 i predavanja našeg MVP za PS Aleksandra Nikolića(ovde moram napisati i preporuku za Aleksandrova predavanja pogotovu ako tu prste umeša i Krunoslav Mihalić). Ono što primećujem je da vrlo mali broj IT profesionalaca kod nas koristi PS. Razlog možda leži u malo domaćih izvora ili nepoznavanje mogućnosti koje nam PS nudi. Skoro sve naprednije radnje u AD, Exchange i ostalim MS proizvodima možemo izvesti samo preko PS, pa eto još jednog razloga za učenje istog. Kao što ste možda i primetili svaka akcija koja se uradi preko konzole u Exchange-u je bazirana na EMS-u.

Velika prednost powershell-a je što ga svi mogu relativno lako koristiti, kao zamenenu za standardnu komandnu liniju i osnovne komande a i oni napredniji za pisanje skripti(PS radi sa objektima i sastavljen je od niza komponenti nazvanih cmdlet-ovi preko kojih se mogu preneti podaci strukturno, odnosno moguće je pajpovati podatke). Još jedna stvar koju je MS uradio da bi korisnicima olakšao prelaz na PS je to što je većina komandi sa CMD-a zadržana, pa tako npr možemo koristi i ping ali i test-connection(koja je dosta moćnija od komande ping).

PS C:\Users\rajco> ping rajco.me

Pinging rajco.me [31.170.161.235] with 32 bytes of data:
Reply from 31.170.161.235: bytes=32 time=194ms TTL=51
Reply from 31.170.161.235: bytes=32 time=215ms TTL=51
Reply from 31.170.161.235: bytes=32 time=194ms TTL=51
Reply from 31.170.161.235: bytes=32 time=193ms TTL=51
PS C:\Users\rajco> Test-Connection rajco.me

Source        Destination     IPV4Address      IPV6Address                              Bytes    Time(ms)
------        -----------     -----------      -----------                              -----    --------
AL-IT-CA-B... rajco.me        31.170.161.235   {}                                       32       193
AL-IT-CA-B... rajco.me        31.170.161.235   {}                                       32       196
AL-IT-CA-B... rajco.me        31.170.161.235   {}                                       32       195
AL-IT-CA-B... rajco.me        31.170.161.235   {}                                       32       195

Dakle sve komande na koje ste navikli su i dalje tu:

dir
cd
move
...
Ali umesto njih možete koristiti nove PS komandletove:
 
Get-ChildItem
ItemSet-Location
Move-Item
...

Moram još dve stvari koje su odlične kod PS, a to su help sistem i zajednica. Help je jedan od najboljih sa kojim sam imao prilike da se susretnem, sve je dokumentovano a postoje i online verzije koje su eventualno ažurirane u međuvremenu. Komandom Get-Help pozivamo pomoć za određeni komandlet:

 
PS C:\Users\rajco> Get-Help Set-Item

NAME
    Set-Item

SYNOPSIS
    Changes the value of an item to the value specified in the command.


SYNTAX
    Set-Item [-LiteralPath] <string[]> [[-Value] <Object>] [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter
    <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

    Set-Item [-Path] <string[]> [[-Value] <Object>] [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string
    >] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]


DESCRIPTION
    The Set-Item cmdlet changes the value of an item, such as a variable or registry key, to the value specified in the
     command.


RELATED LINKS
    Online version: http://go.microsoft.com/fwlink/?LinkID=113395
    about_Providers
    Get-Item
    New-Item
    Remove-Item
    Clear-Item
    Invoke-Item
    Rename-Item
    Move-Item
    Copy-Item

REMARKS
    To see the examples, type: "get-help Set-Item -examples".
    For more information, type: "get-help Set-Item -detailed".
    For technical information, type: "get-help Set-Item -full".

Primetićemo da svaki put kad pozove pomoć imamo link do online verzije i da imamo mogućnost za tri vrste pomoći: –examples –detailed –full

PS “zajednica” je jedna od najaktivnijih na MS Forumima i vrlo brzo možete dobiti odličnu pomoć, naravno pre toga proverite da li se već govorilo o problemu koji imate.
U sledećem članku možete očekivati i neke “naprednije” komande. Nadam se da će vas ovaj teks bar malo zainteresovati za PS, a za kasnije se ne sekiram jer sam siguran da ćete i “ostati u njemu”.

One thought on “Uvod u Powershell i par osnovnih komandi”

Leave a Reply

Your email address will not be published. Required fields are marked *