PowerShell
Osnove
WMF? PowerShell?
 PowerShell je dio WMF (Windows Management Framework)
 5 iteracija, posljednji je PowerShell 5 (Google: WMF 5)
Ali postoji PowerShell i PowerShell ISE
 PowerShell je okruženje
 PowerShell ISE je alat za razvoj cmdleta
Script, function, cmdlet, module
 Objektno orijentiran
 Funkcija je osnova
 CmdLet sadrži funkcije
 Skripta je skup funkcija i CmdLeta
 Module je skup skripti, funkcija i CmdLeta
Verb-Noun
 CmdLeti koriste Verb-Noun standard
 Razmaka u CmdLetu nema
 Verb – što (Get, Set, Update, …)
 Noun – na čemu (Help, ADUser, Item, …)
 40 tak striktno definiranih glagola
 I naravno parametri… (-Nešto)
 Tab, IntelliSense, AutoComplete, …
A kako da to pokrenem?
 PowerShell skriptu ili modul nije moguće pokrenuti na dvostruki klik (by-design, al za ozbiljno)
 Cmdlet se pokreće pozivanjem, npr „Get-Help”
 Skripta se pokreće malo čudnije „.Ubij-Sve.ps1”
 Ili se otvori u ISE i pokrene zelenim „play” gumbom
 Ponekad skripta = modul i ništa se ne dogodi?
 „Run as Administrator” je gotovo obavezno
Help, man, bog-ti-pomogo
 Update-Help
 Get-Help process
 Get-Help *process
 Get-Help *process*
 Get-Help Get-Process -Detailed
 Get-Help Get-Process -Full
 Get-Help Get-Process -Examples
 Get-Help Get-Process -ShowWindow
Moduli
 Module je potrebno instalirati
 Npr. Active Directory modul se instalira kada se instalira RSAT
 Moduli se mogu i dodavati ručno (nikada ne dodavat u
C:WindowsSystem32WindowsPowerShellv1.0Modules)
 Get-Module -ListAvailable
 Import-Module
Operatori
 Aritmetički
 + - * /
 Get-Help about_arithmetic_operators
 Dodjela
 = += -=
 Get-Help about_comparison_opeartors
Operatori
 Logički
 -and
 -or
 Get-Help about_Logical_Operators
 Komparativni
 -eq (equal, jednako)
 -ne (not equal, nije jednako)
 Get-Help about_Comparison_Operators
Varijable
 Označavaju se sa znakom $
 npr $mojaVarijabla
 $procesi = Get-Process
 Ispis varijable - $procesi
Zagrade, navodnici, komentari…
 Zgrade ()
 Vitičaste zagrade {}
 Dvostruki navodnici – „”
 Jednostruki navodnici - ‘’
 Dolar - $ - varijabla
 Hash # - komentar
Pipeline
 Prosljeđivanje rezultata CmdLeta u daljnje obrađivanje
 Pipeline se označava sa |
 Korištenje objekta u pipeu - $_
 Get-Process | Where-Object {$_.Name –eq „svchost”} | Out-GridView
Uvjeti
If(uvjet)
{
# uvjet zadovoljen
}
Else
{
# uvijet nije zadovoljen
}
Petlje
do
{
# napravi nešto
}
while (uvjet)
do
{
# napravi nešto
}
until (uvjet)
while (uvjet)
{
# napravi nešto
}
Petlje
for ($i=1; $i –le 10; $i++)
{
$i
}
Foreach ($varijabla in $skup)
{
$varijabla
}
Export
 Export
 Export-CSV
 Out
 Out-File
 Out-Printer
 Out-GridView
Udaljeno izvršavanje
 WinRM mora raditi
 Enable-PSRemoting -Force
 Dio CmdLeta ima parametar –ComputerName
 Enter-PSSession
 Invoke-Command

PowerShell osnove

  • 1.
  • 2.
    WMF? PowerShell?  PowerShellje dio WMF (Windows Management Framework)  5 iteracija, posljednji je PowerShell 5 (Google: WMF 5)
  • 3.
    Ali postoji PowerShelli PowerShell ISE  PowerShell je okruženje  PowerShell ISE je alat za razvoj cmdleta
  • 4.
    Script, function, cmdlet,module  Objektno orijentiran  Funkcija je osnova  CmdLet sadrži funkcije  Skripta je skup funkcija i CmdLeta  Module je skup skripti, funkcija i CmdLeta
  • 5.
    Verb-Noun  CmdLeti koristeVerb-Noun standard  Razmaka u CmdLetu nema  Verb – što (Get, Set, Update, …)  Noun – na čemu (Help, ADUser, Item, …)  40 tak striktno definiranih glagola  I naravno parametri… (-Nešto)  Tab, IntelliSense, AutoComplete, …
  • 6.
    A kako dato pokrenem?  PowerShell skriptu ili modul nije moguće pokrenuti na dvostruki klik (by-design, al za ozbiljno)  Cmdlet se pokreće pozivanjem, npr „Get-Help”  Skripta se pokreće malo čudnije „.Ubij-Sve.ps1”  Ili se otvori u ISE i pokrene zelenim „play” gumbom  Ponekad skripta = modul i ništa se ne dogodi?  „Run as Administrator” je gotovo obavezno
  • 7.
    Help, man, bog-ti-pomogo Update-Help  Get-Help process  Get-Help *process  Get-Help *process*  Get-Help Get-Process -Detailed  Get-Help Get-Process -Full  Get-Help Get-Process -Examples  Get-Help Get-Process -ShowWindow
  • 8.
    Moduli  Module jepotrebno instalirati  Npr. Active Directory modul se instalira kada se instalira RSAT  Moduli se mogu i dodavati ručno (nikada ne dodavat u C:WindowsSystem32WindowsPowerShellv1.0Modules)  Get-Module -ListAvailable  Import-Module
  • 9.
    Operatori  Aritmetički  +- * /  Get-Help about_arithmetic_operators  Dodjela  = += -=  Get-Help about_comparison_opeartors
  • 10.
    Operatori  Logički  -and -or  Get-Help about_Logical_Operators  Komparativni  -eq (equal, jednako)  -ne (not equal, nije jednako)  Get-Help about_Comparison_Operators
  • 11.
    Varijable  Označavaju sesa znakom $  npr $mojaVarijabla  $procesi = Get-Process  Ispis varijable - $procesi
  • 12.
    Zagrade, navodnici, komentari… Zgrade ()  Vitičaste zagrade {}  Dvostruki navodnici – „”  Jednostruki navodnici - ‘’  Dolar - $ - varijabla  Hash # - komentar
  • 13.
    Pipeline  Prosljeđivanje rezultataCmdLeta u daljnje obrađivanje  Pipeline se označava sa |  Korištenje objekta u pipeu - $_  Get-Process | Where-Object {$_.Name –eq „svchost”} | Out-GridView
  • 14.
  • 15.
    Petlje do { # napravi nešto } while(uvjet) do { # napravi nešto } until (uvjet) while (uvjet) { # napravi nešto }
  • 16.
    Petlje for ($i=1; $i–le 10; $i++) { $i } Foreach ($varijabla in $skup) { $varijabla }
  • 17.
    Export  Export  Export-CSV Out  Out-File  Out-Printer  Out-GridView
  • 18.
    Udaljeno izvršavanje  WinRMmora raditi  Enable-PSRemoting -Force  Dio CmdLeta ima parametar –ComputerName  Enter-PSSession  Invoke-Command