powershell 2.0 webinaari 6.9.2010

23
PowerShell 2.0

Upload: jarno-maeki

Post on 29-Jun-2015

275 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: PowerShell 2.0 Webinaari 6.9.2010

PowerShell 2.0

Page 2: PowerShell 2.0 Webinaari 6.9.2010

Kouluttajan esittely

Jarno MäkiDirector, Training OperationsM.Eng, MCT, MCITP, MCSE:Security, MCTS

Osaamisalueet:• Järjestelmänhallinta• Skriptaus ja PowerShell• Palvelininfrastruktuuri

Page 3: PowerShell 2.0 Webinaari 6.9.2010

PowerShell 2.0

• Mikä on PowerShell?• PowerShellin versiot• PowerShellin komennot• PowerShellin käyttäminen

Page 4: PowerShell 2.0 Webinaari 6.9.2010

Mikä on PowerShell?• Microsoftin ensimmäinen oikea komentotulkki

– PowerShell = CMD.exe ^ 2– Tarkoitettu administraattoreille ja ylläpitotehtävien automatisointiin

• Yllättävän helppokäyttöinen, eikä vaadi ohjelmointikokemusta– On skriptattavissa (tiedostopääte .ps1)– Voidaan kustomoida profiileilla ja funktioilla, sekä laajentaa 3rd party

laajennuksilla– Mahdollistaa pääsyn rekisteriin, WMI:hin ja Active Directoryyn vaivattomasti– Rakennettu .Net Frameworkin päälle

• Ei prosessoi tekstiä vaan olioita• PowerShell on olio-pohjainen komentotulkki

– Etäkäyttö on mahdollista versiosta 2.0 eteenpäin

Page 5: PowerShell 2.0 Webinaari 6.9.2010

PowerShellin versiot• Versio 1.0 • Versio 2.0

– CTP (Community Technology Preview)– CTP2– CTP3– RTM Windows 7:n ja Windows Server 2008 R2:n mukana

• Uusia ominaisuuksia 2.0:ssa on paljon, mutta tärkeimmät ovat:– Etäkäyttö (komennoissa –ComputerName parametrejä)– Tausta-ajo (background job)– ScriptCmdlets (omat skripteillä tehtävät komennot)– Uusia komentoja– Graafinen käyttöliittymä skriptaamiseen

Page 6: PowerShell 2.0 Webinaari 6.9.2010

PowerShellin komennot

• PowerShellin nerokkuus piilee uusissa komennoissa:

– Cmdletejä löytyy noin 130 kappaletta valmiina PowerShell 1.0:sta, ja 235 kappaletta PowerShell 2.0:sta, mutta komentopohjaa voi myös laajentaa

– Komennot koostuvat muodosta:

Verbi–Substantiivi(Verb-Noun)

– Muutamia esimerkkejä cmdleteistä:Get-ProcessGet-HelpSet-Alias

Page 7: PowerShell 2.0 Webinaari 6.9.2010

PowerShellin komennot

• Valmiina noin 130/235 cmdlet:ä– Lista saadaan komennolla Get-Command

• Microsoftilla eri tuotteisiin laajennuksia– Exchange 2007– System Center Operations Manager 2007– SQL Server 2008

• Kolmansilla osapuolilla lisää– Quest Software on tehnyt ilmaisen Active Directory

cmdlet-paketin http://www.quest.com/powershell/

Page 8: PowerShell 2.0 Webinaari 6.9.2010

PowerShellin komennot

• Haasteena PowerShellissä on oppia uudet komennot– Command-let (cmdlet)– (Verbi-Substantiivi) (Verb-Noun)

• Kaikkien komentojen äiti PowerShellissä:

• Lista vain on pitkä, joten kannattaa filtteröidä:

Get-Command

Get-Command –verb Get

Get-Command –noun Process

Page 9: PowerShell 2.0 Webinaari 6.9.2010

PowerShellin käyttäminen• Tärkein asia muistaa PowerShellistä on komento:

• Toiseksi tärkein asia on muistaa miten saada apua

• Voi käyttää myös lyhenteitä help ja man– Kyseessä ei ole cmdletit vaan funktiot!

• Normaalisti Get-Help tulostaa vain kuvauksen komennosta, mutta lisäparametreillä voi lisätä näytettäviä tietoja– Detailed– Full– Examples

Get-Command

Get-Help <command-letin nimi>

Page 10: PowerShell 2.0 Webinaari 6.9.2010

PowerShellin käyttäminen

• Cmdlet-komennoilla on ”jäseniä”– Metodeja (methods)– Ominaisuuksia (properties)

• Jäsenet selvitetään Get-Member cmdletillä

Get-Process | Get-Member

Page 11: PowerShell 2.0 Webinaari 6.9.2010

PowerShellin käyttäminen

• Command-letit ovat käytännössä aika typeriä– Tiedostotulostus komennolla Get-Childitem

• Komennoista on olemassa aliaksia, ja niitä voidaan tehdä myös lisää– Olemassaolevat aliakset listataan komennolla Get-Alias– Esimerkkejä:– Dir, ls Get-Childitem– Copy Copy-Item– Gcm Get-Command

Page 12: PowerShell 2.0 Webinaari 6.9.2010

PowerShellin käyttäminen

• Tarvittaessa on mahdollista kirjoittaa useita komentoja tai lyhyitä skriptejä funktioksi, jota voi PowerShellissä kutsua useita kertoja

• Funktiot voidaan kirjoittaa myös profiiliin, jolloin ne ovat saatavilla myös seuraavalla kerralla kun PowerShell käynnistyy

• Olemassaolevat funktiot listataan komennolla:Get-Command –commandtype function

Page 13: PowerShell 2.0 Webinaari 6.9.2010

PowerShellin käyttäminen

• Funktion luominenFunction Testi { write-host ”Teppotesti” }

Page 14: PowerShell 2.0 Webinaari 6.9.2010

PowerShellin käyttäminen

• PowerShell voidaan kustomoida– Omilla laajennuksilla– Promptin vaihtamisella– Aliaksilla– Funktioilla

• Kustomoinnit ovat voimassa vain istunnon ajan• Jos muutokset halutaan ladattavan aina kun PowerShell

käynnistyy, käytetään profiileja

Page 15: PowerShell 2.0 Webinaari 6.9.2010

PowerShellin käyttäminen

• Muuttujat määritellään $-merkillä

• Olemassa sisäänrakennettuja muuttujia– $pshome– $home– $profile

• Muuttujaan voidaan tallentaa myös cmdletin tulostus

• Muuttujaa voidaan käyttää komennon syötteenä

$muuttuja = ”Dataa”

$muuttuja = Get-Process

$muuttuja = ”C:”Cd $muuttuja

Page 16: PowerShell 2.0 Webinaari 6.9.2010

PowerShellin käyttäminen

• Prosessien hallintaan liittyvät cmdletit:– Get-Process– Stop-Process

• Vinkkejä prosessien listaamiseen:

• Prosessin pysäyttäminen

Get-Process c*Get-Process [ce]*Get-Process [ce]* | Format-Table processname,idGet-Process [ce]* | Format-Table processname,id –autosizeGet-Process | Format-Table –group Company

Notepad.exeGet-Process notepad | stop-process

Page 17: PowerShell 2.0 Webinaari 6.9.2010

PowerShellin käyttäminen

• Palveluiden hallintaan liittyvät cmdletit:– Get-Service– New-Service– Set-Service– Start-Service– Stop-Service– Restart-Service (!)– Suspend-Service– Resume-Service

Page 18: PowerShell 2.0 Webinaari 6.9.2010

PowerShellin käyttäminen

• Palveluiden listaaminen

• Stopped-tilassa olevien palveluiden listaaminen

• Palvelun käynnistys

• Palvelun käynnistys paluuarvolla

Get-Service | Sort Status

Get-Service | Where {$_.Status –eq ”Stopped”}

Start-Service <palvelun nimi>

Start-Service <palvelun nimi>$palveluntila = Get-Service <palvelun tila>$palveluntila.Status

Page 19: PowerShell 2.0 Webinaari 6.9.2010

PowerShellin käyttäminen

• WMIn hyödyntämiseen löytyy cmdlet Get-Wmiobject (gwmi)

• Esimerkkejä:

Get-Wmiobject –computername <koneen nimi> –class <luokka>

Get-Wmiobject –class Win32_Operatingsystem

Get-Wmiobject –class Win32_LogicalDisk | where {$_.Drivetype –eq 3}

Get-Wmiobject –class Win32_Operatingsystem –computername wks001,wks002 | Format-Table

Page 20: PowerShell 2.0 Webinaari 6.9.2010

PowerShellin käyttäminen

• Komennon suorittaminen toisella koneella WMI:n kautta

$c = Get-Wmiobject –list –computername ”london” | Where { $_.Name –eq ”Win32_Process” }

$c.Create(”cmd.exe /k gpupdate /force”)

Page 21: PowerShell 2.0 Webinaari 6.9.2010

PowerShellin käyttäminen

• Active Directoryn hallintaan löytyy Quest Softwarelta ilmainen laajennus(ActiveRoles cmdlet)– Windows Server 2008 R2:sta löytyy natiivina AD:n

hallintatyökaluthttp://www.quest.com/powershell/

• Laajennuksista löytyy komentoja mm. hakuihin:

• Objektien luomiseen:

Get-QADUser –searchroot ’domain.com/OU’

Get-QADUser administrator

New-QADUser –name ’Juuseri’ –parentcontainer ’ou=testi, dc=domain, dc=com’ –samaccountname ’juuseri’ –userpassword P@ssw0rd

Page 22: PowerShell 2.0 Webinaari 6.9.2010

Koulutus- ja konsultointitarjontaa

• PowerShell! –kurssi 2 päivää (835) • Microsoft Winows –järjestelmien edistynyt hallinta

skriptaamalla –kurssi 2 päivää (812) • Hallinnan automatisointi VBScriptillä ja PowerShellillä • PowerShell- ja VBScript-konsultointia

• MCITP: Server Administrator –koulutusohjelma 9 päivää (446)• MCITP: Enterprise Administrator –koulutusohjelma 12 päivää

(449)

Lisätiedot www.salcom.fi

Page 23: PowerShell 2.0 Webinaari 6.9.2010

Kiitos!