Kan ratta os:et
Vi kan också hantera själva operativsystemet med Powershell. Det här exemplet tar först reda på vilka tjänster som är stoppade, och startar sedan dessa:
Get-Service | Where-Object {$_.status -eq ”stopped”} | start-service
Det finns förstås också mindre smarta saker att hitta på. Till exempel kan du ju fundera över vad följande enkla kommando skulle innebära:
Get-service | stop-service
Jo, det skulle helt enkelt arbeta sig igenom alla tjänster och stoppa dem. Troligen inte en särskilt bra idé att göra i en produktionsmiljö.
Testa att allt går rätt till
Något som man å andra sidan troligen vill göra där är att testa att ett kommando verkligen gör det man avser att det ska göra och att syntaxen verkligen stämmer när det är dags att köra ett skarpt kommando.
Vi kan tänka oss att du vill ta bort ett antal användarkonton från AD där användarna arbetar på marknadsavdelningen med följande kommando:
get-aduser -Ldapfilter ”(department=marketing)” | Remove-ADUser –whatif
Eftersom det är en känslig operation är det bra att använda växeln -whatif sist på kommandoraden. Den gör att vi testar att syntaxen är rätt och vi ser också vad som skulle ha hänt om vi kört kommandot utan växeln. En sådan här simulering är mycket värdefull för att veta att ett kommando fungerar och gör det som det ska.
Grafisk miljö finns
För att göra det enklare att arbeta med Powershell har Microsoft inkluderat en enkel utvecklingsmiljö som kallas Integrated Scripting Environment, ISE. Miljön installeras inte automatiskt med Windows Server 2008 R2 utan är en separat funktion som måste installeras manuellt.
Det är 2008 R2-versionen som vi använt under arbetet med den här artikeln, men vi har även testat ISE för Windows Server 2012. Den installeras automatiskt och har vidareutvecklats till att blir en riktigt bra produkt med flera automatiserade funktioner som liknar de vi ser i Visual Studio.
De exempel vi sett tidigare är så korta att de enkelt kan skrivas in manuellt och köras vid varje tillfälle. Men det kan också vara så att man vill genomföra mer avancerade uppgifter som kräver mycket mer utrymme. Då skapar man helt enkelt en textfil som innehåller de kommandon man vill köra och kallar den för <filnamn>.ps1 och kör det från en Powershell-tolk med kommandot .\<filnamn>.ps1. Det här är bekvämt och det finns också en hel del färdiga .ps1-filer som du kan ladda ner från internet som genomför diverse uppgifter.
Innehållsförteckning
- Azure och Azure IaaS: Övergripande namn på Microsofts molntjänster för utvecklare och it-proffs. Har hittills varit en plattform att placera webbaserade applikationer på (paas, platform as a service) men i och med den nya rollen virtual machines finns också en iaas-tjänst (infrastructure as a service), där man kan placera traditionella virtuella servrar.
- cmdlet: Enstaka kommando i Powershell. Exempel: Move-Mailbox eller New-AzureVM.
- ISE, Integrated Scripting Environment: Microsofts grafiska utvecklingsverktyg för Powershell.
- | (pipeline): Tecken som används för att skicka data mellan olika cmdlets. Kallas pipeline, pipe, vertikalis eller lodrätt streck.
- Powershell: Kommandoradsbaserat skriptspråk som kan genomföra och automatisera åtgärder i olika produkter baserat på avancerade filtreringsmöjligheter.
- VMM, Virtual Machine Manager: Del-produkt i Microsoft System Center för att hantera interna virtuella miljöer.
- växel (även argument, flagga, option): Anger hur ett kommando ska bete sig. Det finns bara ett visst antal förutbestämda växlar som kan användas i ett kommando.