Powershell-handledning för nybörjare
⚡ Smart sammanfattning
PowerShell Scripting är en objektorienterad automatiseringsmotor byggd på .NET Framework. Den kombinerar cmdlets, skript och ett skriptspråk för att hjälpa IT-administratörer att automatisera Windows, hantera tjänster och ansluta fjärrmaskiner från en enda kommandorad.

Vad är PowerShell?
Windows Power är en objektorienterad automatiseringsmotor och skriptspråk. Den är utformad för IT-proffs och systemadministratörer som behöver kontrollera och automatisera administrationen av Windows och andra applikationer. PowerShell utökar de koncept som lärts ut i Windows Kommandotolken och Windows Skriptvärd med nya objekt, cmdlets och en kraftfull pipeline.
Den kombinerar flexibiliteten hos skript, hastigheten hos en kommandorad och djupet hos ett GUI-administrationsverktyg. Med den kan administratörer lösa problem effektivt och eliminera timmar av manuellt arbete. Den här handledningen går igenom det viktigaste du behöver för att lära dig PowerShell från grunden.
Varför använda PowerShell?
De viktigaste anledningarna att använda PowerShell är:
- Erbjuder en väl integrerad kommandoradsupplevelse för operativsystemet.
- Ger fullständig åtkomst till alla typer i .NET-ramverket.
- Betrott av systemadministratörer över hela företag.
- Låter dig manipulera server- och arbetsstationskomponenter med några få rader.
- Riktad mot systemadministratörer med en ren verb-substantiv-syntax.
- Säkrare än att springa VBScript eller andra äldre skriptspråk.
PowerShell-historik
PowerShell 1.0 släpptes första gången 2006. PowerShell finns nu i version 7.2 och senare. Allt eftersom utgåvor släpptes växte dess funktioner och värdmiljöer avsevärt.
Versionshistorik för PowerShell:
- PowerShell 1.0 — stödde lokal administration av Windows Server 2003.
- PowerShell 2.0 — integrerad med Windows 7 och Windows Server 2008 R2. Lade till fjärrstyrning, transaktioner, bakgrundsjobb, händelser och felsökning.
- PowerShell 3.0 — skickas med Windows 8 och Windows Server 2012 som en del av Windows Management Framework. Lade till schemalagda jobb, sessionsanslutning och automatisk moduledning.
- PowerShell 4.0 — skickas med Windows 8.1 och Windows Server 2012 R2. Lade till önskad tillståndskonfiguration, förbättrad felsökning och nätverksdiagnostik.
- PowerShell 5.0 — en del av Windows Management Framework 5. Lade till fjärrfelsökning, klassdefinitioner och .NET-uppräkningar.
- PowerShell 7.2 — byggt på .NET 6.0. Lägger till nya operatorer, dynamiska felvyer och automatiska versionsmeddelanden.
Funktioner i PowerShell
- PowerShell-fjärrstyrning: anropa skript och cmdlets på en fjärrdator.
- Bakgrundsjobb: köra skript eller pipelines asynkront på den lokala maskinen eller många fjärrmaskiner.
- transaktioner: låta cmdlets och utvecklare utföra grupperade operationer som kan committas eller återställas tillsammans.
- Evenemang: lyssna efter, vidarebefordra och agera på lednings- och systemhändelser.
- Nätverksfilöverföring: inbyggt stöd för prioriterad, asynkron, strypt filöverföring mellan maskiner via Background Intelligent Transfer Service (BITS).
Så här startar du PowerShell
PowerShell är förinstallerat på alla nyare versioner av WindowsStarta det enligt följande.
Steg 1) Sök efter PowerShell i Windows, markera och klicka sedan på den.
Steg 2) PowerShell-fönstret öppnas.
Cmdlet vs Command
A cmdlet (uttalas "command-let") är ett lättviktigt kommando som används i PowerShell-miljön. PowerShell anropar cmdlets vid prompten, och du kan skapa dina egna med hjälp av PowerShell API:erna. Cmdlets skiljer sig från traditionella shell-kommandon på följande sätt:
- Cmdlets är . Framework NET klassobjekt; de kan inte köras som fristående körbara filer.
- Cmdlets kan skrivas på så lite som ett dussin rader kod.
- Parsning, formatering av utdata och felpresentation hanteras av körningsmiljön, inte av själva cmdlet:en.
- Cmdlets fungerar med objekt, så både textströmmar och objekt kan flöda genom pipelines.
- Cmdlets är postbaserade och bearbetar ett enda objekt åt gången.
Merparten av PowerShell-funktionaliteten levereras via cmdlets, som alltid använder ett verb-substantiv-namngivningsmönster (alltid singular). Cmdlets returnerar objekt, inte text. skript — till skillnad från en cmdlet — är en serie kommandon som lagras i en textfil med .ps1 förlängning.
Vanliga verb du kommer att använda för att lära dig PowerShell inkluderar:
- Skaffa sig — hämta något.
- Start — köra något.
- Out — mata ut något.
- Sluta — stoppa något som är igång.
- uppsättning — definiera något.
- Nytt — skapa något.
Viktiga PowerShell-kommandon
Få hjälp: Visa hjälp för PowerShell-kommandon och ämnen.
Exempel: visa hjälp för Format-Table kommando.
Get-Help Format-Table
Hämta-kommando: få information om allt som kan åberopas.
Exempel: generera en lista över cmdlets och funktioner som är installerade på maskinen.
Get-Command
Get-Service: hittar alla tjänster på maskinen.
Exempel: hämta alla tjänster vars namn börjar med "vm".
Get-Service "vm*"
Hämta medlem: visa vad man kan göra med ett föremål.
Exempel: lista medlemmar i de virtuella maskinvarutjänster som returneras av Get-Service.
Get-Service "vm*" | Get-Member
Andra användbara cmdlets:
Get-Module— visa installerade kommandopaket.Get-Content— läsa en fil och bearbeta dess innehåll.Get-*jokertecken — listar alla cmdlet som börjar med “Get-”.
Exempel: skapa en mapp.
New-Item -Path 'X:\Guru99' -ItemType Directory
Produktion:
PowerShell-datatyper
PowerShell stöder standard .NET-datatyper så att du kan lagra valfritt värde tydligt i en variabel.
Specialvariabler
PowerShell exponerar ett antal inbyggda specialvariabler. De mest användbara listas nedan.
| Specialvariabel | BESKRIVNING |
|---|---|
| $Error | En matris med felobjekt som representerar de senaste felen. |
| $Värd | Visar namnet på den aktuella värdapplikationen. |
| $Profile | Lagrar den fullständiga sökvägen till användarprofilen för standardgränssnittet. |
| $PID | Lagrar processidentifieraren. |
| $PSUICulture | Innehåller namnet på den nuvarande UI-kulturen. |
| $NULL | Innehåller det tomma värdet eller nullvärdet. |
| $False | Innehåller det booleska värdet FALSE. |
| $True | Innehåller det booleska värdet TRUE. |
PowerShell-skript
PowerShell-skript lagras i .ps1 filer. Som standard kan du inte köra ett skript genom att dubbelklicka på det – denna säkerhetsåtgärd skyddar systemet från oavsiktlig skada. För att köra ett skript, högerklicka på det och välj "Kör med PowerShell".
En körningspolicy styr vilka skript som får köras. Visa den aktuella policyn med Get-ExecutionPolicyMöjliga värden inkluderar:
- begränsad — Inga skript är tillåtna. Detta är standardinställningen.
- Allsignerad — endast skript signerade av en betrodd utvecklare körs, och varje skript kräver bekräftelse.
- RemoteSigned — dina egna skript körs, plus signerade skript från betrodda källor.
- Obegränsad — vilket skript som helst kan köras (använd sparsamt).
Steg för att ändra exekveringspolicy:
Steg 1) Öppna en upphöjd PowerShell-prompt genom att högerklicka på PowerShell och välja Kör som administratör.
Steg 2) Kör kommandona nedan.
Get-ExecutionPolicySet-ExecutionPolicy Unrestricted- ange
Yvid bekräftelseprompten. Get-ExecutionPolicy
Första PowerShell-skriptet
Öppna Anteckningar och skriv:
Write-Host "Hello, Guru99!"
Spara filen med en .ps1 förlängning — till exempel FirstScript.ps1.
I PowerShell, kör skriptet med:
& "X:\FirstScript.ps1"
Vad är PowerShell ISE?
Ocuco-landskapet Windows PowerShell Integrated Scripting Environment (ISE) är standardredigeraren för PowerShell. I ISE kan du köra kommandon, skriva tester och felsöka skript i en grafisk, fönsterbaserad miljö. Den stöder flerradig redigering, syntaxfärgning, tabbkomplettering, selektiv körning och mer.
PowerShell ISE erbjuder också en konsolruta som kör kommandon direkt, medan sidofönster visar källan till dina skript och eventuella verktyg som är anslutna till ISE. Du kan öppna flera skriptfönster samtidigt – användbart vid felsökning av skript som är beroende av funktioner som definieras i andra skript eller moduler.
Återskapa det tidigare skriptet i ISE:
- Klistra in koden i redigeraren.
- Spara skriptet.
- Tryck F5 för att köra den.
- Observera utdata i konsolfönstret.
Prov 2: följande skript visas gratis virtuellt minne på maskinen.
Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory
Power Concepts
Följande begrepp utgör ordförrådet för det dagliga PowerShell-arbetet.
| Konceptet | BESKRIVNING |
|---|---|
| Cmdlets | Inbyggda kommandon skrivna i .NET-språk som VB eller C#. Utvecklare utökar uppsättningen genom att läsa in eller skriva PowerShell-snapins. |
| Funktioner | Kommandon skrivna i själva PowerShell-språket, utan att behöva en IDE som Visual Studio. |
| Skript | Textfiler på disk med .ps1 förlängning. |
| Tillämpningar | Befintliga Windows program som anropas från skalet. |
| Tänk om | Anger att cmdlet:en inte ska köras, utan att beskriva vad som skulle hända om den gjorde det. |
| Bekräfta | Instruerar cmdlet:en att fråga innan körning. |
| Mångordig | Ger en högre nivå av operativ detaljrikedom. |
| Felsök | Instruerar cmdlet:en att generera felsökningsinformation. |
| ErrorAction | Definierar vad cmdlet:en gör vid fel. Tillåtna värden: continue, stop, silentlycontinue, inquire. |
| ErrorVariable | Namnger variabeln som innehåller felinformation. |
| OutVariable | Anger att cmdlet:en ska lagra sina utdata i en specifik variabel. |
| OutBuffer | Lagrar ett specifikt antal objekt innan de skickas ner i pipelinen. |
Fördelar med att använda PowerShell-skript
- PowerShell-skript är kraftfulla och koncisa – du kan uppnå mycket på bara några få rader.
- Variabler deklareras med
$<variable>syntax. - Variabler kan innehålla kommandoutdata, objekt och primitiva värden.
- Variabeltypen behöver inte anges explicit.
PowerShell kontra kommandotolken
| Power | kommando~~POS=TRUNC |
|---|---|
| Djupt integrerad med WindowsErbjuder en interaktiv kommandorad och ett komplett skriptspråk. | Standardkommandoradsgränssnitt tillhandahålls av MicrosoftEtt enkelt Win32-program som kommunicerar med andra Win32-objekt. |
| Använder cmdlets som kan anropas interaktivt eller via automatiseringsskript. | Inga cmdlets. |
| Behandlar utdata som objekt så att det kan flöda till en annan cmdlet via pipelinen. | Utdata är en vanlig textström, inte objekt. |
| Avancerad i funktioner, kapacitet och intern arkitektur. | Grundläggande skal, lämpligt för äldre batchuppgifter. |
PowerShell-applikationer
PowerShell har blivit standardvalet för IT-administratörer eftersom det dramatiskt minskar arbetsinsatsen i stora företagsnätverk. Tänk dig att hantera mer än fyrahundra servrar och lansera en ny säkerhetslösning som är beroende av en specifik tjänst som körs på varje värd.
Att logga in manuellt på varje server är långsamt och felbenäget. Ett enda PowerShell-skript kan undersöka varje server på några minuter, rapportera vilka värdar som redan kör tjänsten och till och med aktivera den på resten. Skriptet registrerar intentionen en gång och tillämpar den tillförlitligt över hela databasen.
















