Powershell Tutorial for begyndere
⚡ Smart opsummering
PowerShell Scripting er en objektorienteret automatiseringsmotor bygget på .NET framework. Den kombinerer cmdlets, scripts og et scriptsprog for at hjælpe IT-administratorer med at automatisere Windows, administrere tjenester og forbinde eksterne maskiner fra en enkelt kommandolinje.

Hvad er PowerShell?
Windows PowerShell er en objektorienteret automatiseringsmotor og scriptsprog. Den er designet til IT-professionelle og systemadministratorer, der har brug for at kontrollere og automatisere administrationen af Windows og andre applikationer. PowerShell udvider de koncepter, der er lært i Windows Kommandoprompt og Windows Script Host med nye objekter, cmdlets og en kraftfuld pipeline.
Det kombinerer fleksibiliteten ved scripting, hastigheden ved en kommandolinje og dybden ved et GUI-administrationsværktøj. Med det kan administratorer løse problemer effektivt og eliminere timevis af manuelt arbejde. Denne vejledning gennemgår det grundlæggende, du har brug for for at lære PowerShell fra bunden.
Hvorfor bruge PowerShell?
De vigtigste grunde til at bruge PowerShell er:
- Tilbyder en velintegreret kommandolinjeoplevelse til operativsystemet.
- Giver fuld adgang til alle typer i .NET frameworket.
- Tillid til af systemadministratorer på tværs af virksomheder.
- Lader dig manipulere server- og arbejdsstationskomponenter med et par linjer.
- Rettet mod systemadministratorer med en ren verbum-substantiv-syntaks.
- Mere sikkert end at løbe vbscript eller andre ældre scriptsprog.
PowerShell historie
PowerShell 1.0 blev første gang udgivet i 2006. PowerShell er nu i version 7.2 og nyere. I takt med at udgivelserne blev udgivet, voksede dens funktioner og hostingmiljøer betydeligt.
Versionshistorik for PowerShell:
- PowerShell 1.0 — støttede den lokale administration af Windows 2003-server.
- PowerShell 2.0 — integreret med Windows 7 og Windows Server 2008 R2. Tilføjet fjernbetjening, transaktioner, baggrundsjob, hændelser og fejlfinding.
- PowerShell 3.0 — sendes med Windows 8 og Windows Server 2012 som en del af Windows Administrationsramme. Tilføjet planlagte job, sessionsforbindelse og automatisk modulindlæsning.
- PowerShell 4.0 — sendes med Windows 8.1 og Windows Server 2012 R2. Tilføjet ønsket tilstandskonfiguration, forbedret fejlfinding og netværksdiagnosticering.
- PowerShell 5.0 — en del af Windows Management Framework 5. Tilføjet fjernfejlfinding, klassedefinitioner og .NET-optællinger.
- PowerShell 7.2 — bygget på .NET 6.0. Tilføjer nye operatorer, dynamiske fejlvisninger og automatiske versionsnotifikationer.
Funktioner i PowerShell
- PowerShell-fjernstyring: kalde scripts og cmdlets på en fjernmaskine.
- Baggrundsjob: køre scripts eller pipelines asynkront på den lokale maskine eller mange eksterne maskiner.
- Transaktioner: Lad cmdlets og udviklere udføre grupperede handlinger, der kan committes eller rulles tilbage sammen.
- Begivenhed: lytte efter, videresende og reagere på ledelses- og systemhændelser.
- Filoverførsel via netværk: Indbygget understøttelse af prioriteret, asynkron, begrænset filoverførsel mellem maskiner via Background Intelligent Transfer Service (BITS).
Sådan starter du PowerShell
PowerShell er forudinstalleret på alle nyere versioner af WindowsStart det som følger.
Trin 1) Søg efter PowerShell i Windows, og vælg derefter og klik på den.
Trin 2) PowerShell-vinduet åbnes.
Cmdlet vs Command
A cmdlet (udtales "command-let") er en letvægtskommando, der bruges i PowerShell-miljøet. PowerShell kalder cmdlets ved prompten, og du kan oprette dine egne ved hjælp af PowerShell API'erne. Cmdlets adskiller sig fra traditionelle shell-kommandoer på følgende måder:
- Cmdlets er . NET Framework klasseobjekter; de kan ikke udføres som enkeltstående eksekverbare filer.
- Cmdlets kan skrives på så få som et dusin linjer kode.
- Parsing, outputformatering og fejlpræsentation håndteres af runtime-programmet, ikke af selve cmdlet'en.
- Cmdlets fungerer med objekter, så både tekststrømme og objekter kan flyde gennem pipelines.
- Cmdlets er postbaserede og behandler et enkelt objekt ad gangen.
Det meste af PowerShell-funktionaliteten leveres via cmdlets, som altid bruger et navngivningsmønster bestående af verbum og substantiv (altid ental). Cmdlets returnerer objekter, ikke tekst. script — forskellig fra en cmdlet — er en række kommandoer gemt i en tekstfil med .ps1 udvidelse.
Almindelige verber, du vil bruge til at lære PowerShell, inkluderer:
- Få — hente noget.
- Starten — køre noget.
- Out — udskrive noget.
- Stands — stoppe noget, der kører.
- sæt — definere noget.
- Ny — skabe noget.
Vigtige PowerShell-kommandoer
Få hjælp: Se hjælp til PowerShell-kommandoer og -emner.
Eksempel: vis hjælp til Format-Table kommando.
Get-Help Format-Table
Hent-kommando: indhente oplysninger om alt, der kan påberåbes.
Eksempel: Generer en liste over cmdlets og funktioner, der er installeret på maskinen.
Get-Command
Få-service: finder alle tjenester på maskinen.
Eksempel: Hent alle tjenester, hvis navn starter med “vm”.
Get-Service "vm*"
Hent-medlem: vise, hvad man kan gøre med en genstand.
Eksempel: en liste over medlemmer af de VM-tjenester, der returneres af Get-Service.
Get-Service "vm*" | Get-Member
Andre nyttige cmdlets:
Get-Module— vis installerede pakker med kommandoer.Get-Content— læse en fil og behandle dens indhold.Get-*wildcard — angiv alle cmdlet'er, der starter med “Get-”.
Eksempel: Opret en mappe.
New-Item -Path 'X:\Guru99' -ItemType Directory
Output:
PowerShell-datatyper
PowerShell understøtter standard .NET-datatyper, så du kan gemme enhver værdi rent i en variabel.
Særlige variabler
PowerShell eksponerer en række indbyggede specialvariabler. De mest nyttige er anført nedenfor.
| Speciel variabel | Beskrivelse |
|---|---|
| $Fejl | En matrix af fejlobjekter, der repræsenterer de seneste fejl. |
| $Vært | Viser navnet på den aktuelle hostingapplikation. |
| $Profil | Gemmer den fulde sti til brugerprofilen for standardshell'en. |
| $PID | Gemmer procesidentifikatoren. |
| $PSUICulture | Indeholder navnet på den nuværende brugergrænsefladekultur. |
| $NULL | Indeholder den tomme værdi eller nullværdien. |
| $Falsk | Indeholder den booleske værdi FALSE. |
| $Sandt | Indeholder den booleske værdi TRUE. |
PowerShell Scripts
PowerShell-scripts gemmes i .ps1 filer. Som standard kan du ikke køre et script ved at dobbeltklikke på det – denne sikkerhedsforanstaltning beskytter systemet mod utilsigtet skade. For at køre et script skal du højreklikke på det og vælge "Kør med PowerShell".
En udførelsespolitik styrer, hvilke scripts der må køres. Se den aktuelle politik med Get-ExecutionPolicyMulige værdier omfatter:
- begrænset — ingen scripts er tilladt. Dette er standardindstillingen.
- Allesigneret — kun scripts signeret af en betroet udvikler kører, og hvert script kræver bekræftelse.
- RemoteSigned — dine egne scripts kører, plus signerede scripts fra pålidelige kilder.
- Ubegrænset — ethvert script kan køre (brug sparsomt).
Trin til at ændre udførelsespolitikken:
Trin 1) Åbn en PowerShell-prompt med administratorrettigheder ved at højreklikke på PowerShell og vælge Kør som administrator.
Trin 2) Kør kommandoerne nedenfor.
Get-ExecutionPolicySet-ExecutionPolicy Unrestricted- Indtast
Yved bekræftelsesprompten. Get-ExecutionPolicy
Første PowerShell-script
Åbn Notesblok og skriv:
Write-Host "Hello, Guru99!"
Gem filen med en .ps1 udvidelse — for eksempel FirstScript.ps1.
I PowerShell skal du køre scriptet med:
& "X:\FirstScript.ps1"
Hvad er PowerShell ISE?
Windows PowerShell Integreret scriptmiljø (ISE) er standardeditoren for PowerShell. I ISE kan du køre kommandoer, skrive tests og foretage fejlfindingsscripts i et grafisk, vinduesbaseret miljø. Det understøtter redigering af flere linjer, syntaksfarvning, tabulatorfuldførelse, selektiv udførelse og mere.
PowerShell ISE tilbyder også en konsolrude, der kører kommandoer direkte, mens sideruder viser kilden til dine scripts og eventuelle værktøjer, der er tilsluttet ISE. Du kan åbne flere scriptvinduer på én gang – nyttigt, når du skal fejlfinde scripts, der afhænger af funktioner defineret i andre scripts eller moduler.
Genskab det tidligere script i ISE:
- Indsæt koden i editoren.
- Gem scriptet.
- Tryk F5 for at køre den.
- Observer outputtet i konsolruden.
Prøve 2: følgende script viser gratis virtuel hukommelse på maskinen.
Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory
PowerShell Concepts
Følgende begreber danner ordforrådet for det daglige PowerShell-arbejde.
| Concept | Beskrivelse |
|---|---|
| Cmdlets | Indbyggede kommandoer skrevet i .NET-sprog som VB eller C#. Udviklere udvider sættet ved at indlæse eller skrive PowerShell-snap-ins. |
| Funktioner | Kommandoer skrevet i selve PowerShell-sproget, uden behov for et IDE, f.eks. Visual Studio. |
| Scripts | Tekstfiler på disk med .ps1 udvidelse. |
| Applikationer | Eksisterende Windows programmer, der kaldes fra skallen. |
| Hvad hvis | Fortæller cmdlet'en ikke at udføre, men at beskrive, hvad der ville ske, hvis den gjorde det. |
| Bekræfte | Instruerer cmdlet'en til at spørge før udførelse. |
| Ordrig | Giver et højere niveau af operationel detaljering. |
| Debug | Instruerer cmdlet'en til at udsende fejlfindingsoplysninger. |
| Fejlhandling | Definerer, hvad cmdlet'en gør ved fejl. Tilladte værdier: continue, stop, silentlycontinue, inquire. |
| ErrorVariable | Navngiver den variabel, der indeholder fejlinformation. |
| UdVariabel | Fortæller cmdlet'en, at den skal gemme sit output i en bestemt variabel. |
| OutBuffer | Indeholder et bestemt antal objekter, før de sendes ned i pipelinen. |
Fordele ved at bruge PowerShell-scripts
- PowerShell-scripts er kraftfulde og præcise – du kan opnå meget på bare et par linjer.
- Variabler deklareres med
$<variable>syntaks. - Variabler kan indeholde kommandooutput, objekter og primitive værdier.
- Variabeltypen behøver ikke at blive angivet eksplicit.
PowerShell vs. kommandoprompt
| PowerShell | Kommandoprompt |
|---|---|
| Dybt integreret med WindowsTilbyder en interaktiv kommandolinje og et komplet scriptsprog. | Standard kommandolinjegrænseflade leveret af MicrosoftEn simpel Win32-applikation, der kommunikerer med andre Win32-objekter. |
| Bruger cmdlets, der kan kaldes interaktivt eller via automatiseringsscripts. | Ingen cmdlets. |
| Behandler output som objekter, så det kan flyde ind i en anden cmdlet via pipelinen. | Outputtet er en almindelig tekststrøm, ikke objekter. |
| Avanceret i funktioner, muligheder og intern arkitektur. | Grundlæggende shell, egnet til ældre batchopgaver. |
PowerShell-applikationer
PowerShell er blevet standardvalget for IT-administratorer, fordi det dramatisk reducerer indsatsen på tværs af store virksomhedsnetværk. Forestil dig at administrere mere end fire hundrede servere og udrulle en ny sikkerhedsløsning, der er afhængig af en specifik tjeneste, der kører på hver vært.
Manuel login på hver server er langsom og fejlbehæftet. Et enkelt PowerShell-script kan undersøge alle servere på få minutter, rapportere hvilke værter, der allerede kører tjenesten, og endda aktivere den på resten. Scriptet registrerer intentionen én gang og anvender den pålideligt på tværs af systemet.
















