Inledning till PowerShell

PowerShell är Microsofts kommandotolk och script-miljö som är särskilt utformat för systemadministration.

Bild 1: PowerShell logo

PowerShell hjälper IT-personal att hantera och automatisera administrationen av Windows server och program som körs på dem. Windows PowerShell innehåller en interaktiv prompt och en skriptmiljö som kan användas fristående eller i kombination.

PowerShell baseras på .NET Framework som ger enkel åtkomst till Windows komponenter.

.NET Framework

.NET Framework är en del av ett Microsoft Windows operativsystem vilket innebär att .NET Framework inkluderas i de flesta Windows operativsystem, annars finns den som uppgraderingar. Dot Framework består av mjukvara/program/kod organiserade i bibliotek som hjälper till kommandoexekveringar. Med mjukvara menas egentligen kod uppdelad i olika moduler som kan användas till olika syfte beroende på vad operativsystemet vill utföra. Exempelvis när man läser eller skriver en fil, rita ut grafik, ansluta nätverk eller modifiera en databas behöver man olika moduler som kan hittas i de bibliotek som finns i .NET Framework. Således kan vi säga att modulerna tillåter ett flexibelt sätt att använda specifika lösningar/kod.

I .NET Framework ingår även den virtuella maskinen (interpretatorn), Common Language Runtime (CLR) som krävs för att köra program som utvecklats med olika programmeringsspråk men med ramverket för .NET. När .NET Framework används av en Windows system skapas en exekveringsmiljö med namnet CLR vilket kör nödvändig kod för att tillhandahålla diverse programmeringstjänster.

.NET Framework versioner

Windows Server 2016 (alla versioner) innehåller .NET Framework 4.6.2 som en OS-komponent, och den är installerad som standard, förutom i Server Core som kan ha en mindre version exempelvis 4.6.0. Generellt innehåller alla Windows server .NET Framework 3.5 och SP1. Dessa två komponenter inte alltid är installerade men de kan läggas till eller tas bort via exempelvis Serverhanteraren. Tabellen nedan visar de olika .NET versioner och uppgraderingsmöjligheter.

OS .NET version Uppgraderingar
Windows server 2016 (1709)  4.7.1
Windows server 2016  4.6.2  4.7 till 4.7.1
Windows server 2012 R2  4.5.1 (3.5 SP1 som komponent)  4.5.2 till 4.7.1
Windows server 2012  4.5 (3.5 SP1 som komponent)  4.5.1 till 4.7.1
Windows server 2008 R2  3.5.1 (inkl 3.5 SP1, 3.0 SP2, 2.0 SP2)  4 till 4.6
Windows server 2008  3.0 SP1 (inkl 2.0 SP1)
Windows 10 April 2018 4,7,2
Windows 10 Fall Creators Update  4.7.1
Windows 10 Creators Update  4.7  4.7.1
Windows 10 Anniversary Update  4.6.2  4.7 till 4.7.1
Windows 10  4.6  4.6.1 till 4.6.2
Windows 8.1  4.5.1 (3.5 SP1 som komponent)  4.5.2 till 4.7.1
Windows 8  4.5 (3.5 SP1 som komponent)  4.5.1 till 4.6.1
Windows 7  3.5.1 (inkl 3.5 SP1, 3.0 SP2, 2.0 SP2)  4 till 4.7.1
Windows Vista  3.0 (inkl 2.0)
Windows XP  ..ingen (olika versioner i SP)

OBSDet kan finnas flera versioner av .NET Framework installerade på en dator. Varje ny installerad version av .NET Framework är oberoende av de tidigare installerade versionerna.

Vilken installerad version av .NET framework har din dator?

Alla versioner av .NET Framework installeras en av i följande kataloger:

  • %SystemRoot%\Microsoft.NET\Framework
  • %SystemRoot%\Microsoft.NET\Framework64
  1. Öppna CMD och exekvera: C:\>dir %SystemRoot%\Microsoft.NET\Framework\v* /O:-N /B
  2. Installera ASoft .NET, ett tredjepart program som kan hämtas från: http://www.asoft.be/prod_netver.html

Kom igång med PowerShell

Det finns olika sätt att starta Windows PowerShell, men arbetsläge/gränssnitt blir det antingen grafiskt eller via kommandotolken. Kom ihåg att starta PowerShell alltid som Administratör.

Bild 2: PowerShell i 32 och 64 bitar

För att få ett grafiskt arbetsläge öppnar du ett konsolfönster genom att klicka på Start, Alla program, Tillbehör, Windows PowerShell och välja Windows PowerShell.

Observera att den här tekniken startar Windows PowerShell med vanliga användarbehörigheter istället för administratörsbehörigheter.

Ett annat sätt att starta PowerShell är: Startmenyn och skriva i sökfältet ”powershell”. På en Windows 10 dator visar 32 och 64 bitars versioner. Det kan finnas skillnader mellan dessa versioner förutom antal bitar, exempelvis vissa PowerShell kommando fungerar inte i den ena eller den andra versionen.

Ett annat sätt att starta PowerShell är via CMD.

För att starta Windows PowerShell med administratörsbehörigheter kan du klicka på Start, Alla program, Tillbehör, Windows PowerShell, högerklicka på Windows PowerShell och välj Kör som administratör.
Men det finns andra sätt att starta en Windows PowerShell-konsol. Du kan använda Windows tangenten tillsammans med tangenten R så att Kör fältet visas, du skriver PowerShell i fältet och trycker på Enter.

Du kommer att upptäcka fler fördelar via kommandotolken (CMD) exempelvis möjlighet att växla mellan DOS och PowerShell. Du anger kommandot powershell och därefter du trycker på Enter och då startas PowerShell, observera prompten som ändras från C: till PS C: När du vill växla tillbaka till DOS ange kommandot exit och tryck Enter.

Bild 3: PowerShell textbaserade konsol

PowerShell versioner

PowerShell är nästan nitton år gammal och har utvecklats till sex olika versioner, från 1.0 till 6.0. PowerShell finns i två utgåvor (editions):

  • Windows PowerShell som är byggt upp över .NET Framework och som inkluderas i de flesta Windows operativsystem. Utgåvan är känd som ”FullCLR
  • PowerShell Core som är byggt upp över .NET Core. Denna utgåva stödjer andra operativsystem än Windows. Utgåvan är känd som ”CoreCLR

Windows PowerShell utvecklingen hängde ihop med .NET Framework fram till version 5.1. Det är just den versionen alla Windows operativsystem inkluderar som default. Men det finns en PowerShell till, den som grundar sig i .NET Core och den som är en öppen standard som fungerar med andra operativsystem såsom Linux och macOS.

Från år 2017 finns tillgänglig PowerShell Core. Tanken är att tillhandahålla ett systemhanteringsverktyg för operativsystem som kör endast nödvändiga tjänster exempelvis Windows Core server och Windows Nano server.

Med nya versioner introduceras nya funktioner som oftast ger bättre hanteringsmöjligheter av Windows operativsystemskomponenter, programvara och tjänster. Men samtidigt genererar svårigheter med befintliga och anpassade verktyg som inte alltid stödjas i de nya versionerna. Man bör kontrollera noga installerade versionen och vilka andra versioner stödjas.

Så här kan du få fram PowerShell version på en Windows 10:

Bild 4: PowerShell version – detaljerad information
Bild 5: PowerShell version – kortfattad information

Samarbetet mellan operativsystemet, .NET FrameWork och PowerShell kan begränsas just i vad som stödjas av PowerShell själv. Det finns fyra egenskaper att fokusera på, Major, Minor, Build och Revision. När jag söker information på vad dessa termer betyder får jag oftast suddiga definitioner som är avsedda för programmerare. Därmed är jag inte hundra på vad dessa termer exakt betyder, men efter att ha läst flera källor uppfattar jag att major och minor anger intervallet i vilket inkluderas PowerShell versioner som stödjas av operativsystemet.

Begrepp

Bild 6: Ett objekts egenskaper och metoder

När vi arbetar med PowerShell arbetar vi med objekt istället för traditionella strängar eftersom PowerShell är ett objektorienterat språk. Ett objekt är ett paket som innehåller både data och information om vad för objekt är och hur objektet används. Informationen om hur man använder objekt lagras i metoder och objektets egenskaper i data.