Introduksjon til Windows PowerShell 3.0
Med lanseringen av Windows 8 og Windows Server 2012 har også Windows PowerShell 3.0 blitt tilgjengelig, siden det er en del av operativsystemet. PowerShell 3.0 for tidligere versjoner (Windows 7, Windows Server 2008 og Windows Server 2008 R2) er tilgjengelig som en del av Windows Management Framework 3.0, denne kan lastes ned og installeres manuelt eller rulles ut via for eksempel WSUS eller System Center Configuration Manager. Oppdateringen inneholder i tillegg til PowerShell 3.0 oppdaterte versjoner av Windows Management Instrumentation (WMI) og Windows Remote Management (WinRM).
Hva er nytt?
Siden PowerShell 2.0 er det kommet en rekke nye funksjoner. Først kan nevnes at PowerShell 3.0 nå bruker .NET 4.0 sin såkalte CLR (Common Language Runtime), og dette er dermed noe som må være installert før man installerer PowerShell 3.0 på tidligere operativsystemer.
Vi skal ikke gå gjennom alt av nyheter, men av større endringer kan følgende nevnes:
Workflows – En workflow er en sekvens av automatiserte steg eller aktiviteter som utfører oppgaver eller mottar data fra en eller flere administrere enheter (servere, klienter eller andre enheter). Workflows gjør det mulig for ITPro`er og utviklere å automatisere oppgaver på tvers av ulike enheter, eksempelvis å orkestrere installasjoner. Et praktisk eksempel på dette er Lync Server 2013 som benytter seg av den nye workflow funksjonalitet i PowerShell 3.0. Blant fordelene med workflows er muligheten for å suspendere og gjenoppta kjøringen av en workflow, enten årsaken er en planlagt restart av en maskin eller et midlertidig nettverksproblem. Du kan lese mer og se eksempler i denne blog-artikkelen på PowerShell-teamet`s blog.
Robuste sesjoner – dette er en ny funksjon i PowerShell Remoting som gjør at en såkalt PowerShell-sesjon (“PSSession”) som blir midlertidig avbrutt av nettverksfeil automatisk gjenoppretter forbindelsen.
Scheduled jobs – Tett integrert med bakgrunnsjobber som ble introdusert i PowerShell 2.0 er en ny modul som inneholder kommandoer for å jobbe med planlagte oppgaver. Med disse kommandoene er det mulig å fra PowerShell sette opp planlagte oppgaver i Windows Task Scheduler.
Delegert administrasjon – PowerShell Remoting benytter seg av såkalte “endpoints” som er konfigurert til å godta PowerShell Remoting forbindelser, som inneholder elementer som hvilken IP-adresser endepunktet skal lytte på. Nytt i PowerShell 3.0 er muligheten til å spesifisere en såkalt “RunAsUser”, slik at man kan delegere oppgaver til eksempelvis helpdesk-brukere uten å må gi de rettigheter i selve server-applikasjonen.
Forenklet syntaks – Spesielt for nye PowerShell-brukere har det vært vanskelig å huske syntaks for en del ting i PowerShell, for eksempel syntaksen for en såkalt scriptblock på Where-Object. I stedet for Get-Service | Where-Object {$_.Status –eq ‘Running’} kan man ved hjelp av den nye forenklede syntaksen skrive Get-Service | Where-Object Status –eq ‘Running’.
Forbedret brukervennlighet – I tillegg til den forenklede syntaksen er det flere ting som gjør PowerShell mer brukervennlig. Både den nye IntelliSense-funksjonaliteten i PowerShell ISE og Show-Command bidrar til dette. Du kan lese mer om disse to funksjonene i denne og denne blog-posten på PowerShell-teamet`s blog. Automatisk innlasting av moduler er også en ny fynksjon som forbedrer brukervennligheten. Tidligere måtte man først last inn modulen man skulle benytte en cmdlet fra, for eksempel måtte man først laste inn modulen med Import-Module. I versjon 3.0 vil for eksempel ActiveDirectory modulen lastes inn automatisk når man bruker Get-ADUser uten først å laste inn noen moduler.
Windows PowerShell Web Service – gjør det mulig å eksponere et sett av PowerShell cmdlets som såkalte Restful endpoints via OData (Open Data Protocol). Dette gjør det mulig får enheter som kjører både Windows og andre operativsystemer å kjøre PowerShell cmdlets. Dette er funksjonalitet som er mer rettet mot utviklere.
Windows PowerShell Web Access – Dersom man har benyttet Microsoft Exchange Server`s webmail-funksjonalitet (OWA) vil man kjenne seg igjen i PowerShell Web Access. Påloggingsgrensesnittet er veldig likt, hvor man først angir brukernavn og passord før man blir logget inn og har tilgang til PowerShell. Dermed har man tilgang til å benytte PowerShell både fra nettlesere og mobile enheter som Iphone og Windows Phone.
Microsoft Script Explorer –Dette er teknisk sett ikke en del av PowerShell 3.0, men snarere et tillegg som kan lastes ned og integreres med PowerShell ISE. Med Script Explorer kan man søke etter på script og andre ressurser fra både TechNet og eksterne kilder, og få script man finner kopiert direkte inn i PowerShell ISE.
I tillegg er det gjort en rekke feilrettinger og lagt nye funksjoner basert på tilbakemeldinger via Microsoft Connect.
Det er også blitt en massiv PowerShell-støtte for administrasjon av Windows 8 og Windows Server 2012. Det er omtrent 2 400 PowerShell cmdlets for å administrere Windows Server 2012 (antallet varierer avhengig av installerte roller og features), noe som er et resultat av at PowerShell ble en del av Common Engineering Criteria hos Microsoft i 2009.
Ressurser
Selv om man finner disse ressursene via Script Explorer vil jeg likevel fremheve noen:
Windows PowerShell Survival Guide – TechNet Wiki-artikkel som oppdateres av community. Denne inneholder linker til informasjon om hvordan man kommer i gang med PowerShell, guider, bøker, blogger, kurs og andre ressurser.
PowerShell V3 Featured Articles – TechNet Wiki-artikkel med linker til artikler om PowerShell 3.0.
PowerShell V3 Tips and Tricks - TechNet Wiki-artikkel som inneholder mange eksempler på nyheter i PowerShell 3.0.
Windows PowerShell Support for Windows Server 2012 – TechNet-artikkel med oversikt og linker til alle PowerShell-moduler i Windows Server 2012.
PowerShell Book Guide – En god oversikt over PowerShell-bøker både for nybegynnere og mer erfarne PowerShell-brukere. Inneholder også link til en gratis ebok om PowerShell Remoting.
MTUG Script Club – En del av den norske brukergruppen Microsoft Technology User Group hvor IT-administratorer kan møtes for å diskutere og bistå hverandre med ulike utfordringer innen scripting.
Har du tips til andre nyttige ressurser, kom gjerne med tips i kommentarfeltet under.