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.

  • 🚀 Start den højre shell: Åbn PowerShell eller PowerShell ISE fra Start-menuen, og kør det som administrator, når du har brug for forhøjede rettigheder.
  • 🧩 Brug cmdlets, ikke tekstkommandoer: Cmdlets følger et navngivningsmønster med verbum-substantiv og returnerer .NET-objekter, så output kan flyde ind i den næste cmdlet via en pipeline.
  • 🔐 Fastsæt udførelsespolitikken omhyggeligt: Brug Set-ExecutionPolicy med RemoteSigned for at finde en balance mellem sikkerhed og bekvemmelighed, når du kører .ps1-scripts.
  • 📁 Skriv genbrugelige .ps1-scripts: Kombinér cmdlets, variabler og pipelines i en tekstfil med filtypen .ps1 for at automatisere gentagne administratoropgaver.
  • 🤖 Par PowerShell med AI: AI-assistenter omdanner almindelige engelske anmodninger til køreklare PowerShell-scripts og forklarer ukendte cmdlets linje for linje.

Powershell Tutorial for begyndere

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.

Start PowerShell

Trin 2) PowerShell-vinduet åbnes.

PowerShell -vindue

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

Get-Help cmdlet'en

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

Get-Command cmdlet

Få-service: finder alle tjenester på maskinen.

Eksempel: Hent alle tjenester, hvis navn starter med “vm”.

Get-Service "vm*"

Get-Service cmdlet'en

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

Get-Member cmdlet

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:

Nyt element output

PowerShell-datatyper

PowerShell understøtter standard .NET-datatyper, så du kan gemme enhver værdi rent i en variabel.

PowerShell-datatyper

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".

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.

Kør PowerShell som administrator

Trin 2) Kør kommandoerne nedenfor.

  1. Get-ExecutionPolicy
  2. Set-ExecutionPolicy Unrestricted
  3. Indtast Y ved bekræftelsesprompten.
  4. Get-ExecutionPolicy

Ændre udførelsespolitik

Første PowerShell-script

Åbn Notesblok og skriv:

Write-Host "Hello, Guru99!"

Gem filen med en .ps1 udvidelse — for eksempel FirstScript.ps1.

Gem FirstScript.ps1

I PowerShell skal du køre scriptet med:

& "X:\FirstScript.ps1"

Kør 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.

PowerShell ISE

Genskab det tidligere script i ISE:

  1. Indsæt koden i editoren.
  2. Gem scriptet.
  3. Tryk F5 for at køre den.
  4. Observer outputtet i konsolruden.

Kør script i ISE

Prøve 2: følgende script viser gratis virtuel hukommelse på maskinen.

Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory

Gratis virtuel hukommelsesscript

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.

Ofte Stillede Spørgsmål

PowerShell automatiserer Windows Systemadministration — administration af tjenester, filer, brugere og servere — via en objektorienteret kommandolinje og scriptsprog bygget på .NET framework.

En cmdlet er et letvægts .NET-klasseobjekt, der bruger et verbum-substantiv-navn og returnerer objekter. En traditionel kommando i andre shells udskriver almindelig tekst og håndterer sin egen parsing og formatering.

PowerShell fungerer med objekter og understøtter cmdlets, scripting og dyb .NET-integration. Kommandoprompt er en grundlæggende tekstbaseret shell, hvis kommandoer udskriver almindelig tekst i stedet for objekter.

En .ps1-fil er et PowerShell-script — en tekstfil, der indeholder en eller flere PowerShell-kommandoer. Som standard kan den ikke køres ved at dobbeltklikke; den udføres fra konsollen eller med Kør med PowerShell.

Åbn PowerShell som administrator, og kør Set-ExecutionPolicy med en værdi som f.eks. RemoteSigned eller Unrestricted, og bekræft derefter. Brug Get-ExecutionPolicy til at kontrollere den aktuelle indstilling.

Integrated Scripting Environment (ISE) er PowerShells indbyggede GUI-editor til skrivning, kørsel, test og fejlfinding af scripts med syntaksfarvning, tabulatorfuldførelse og flere scriptfaner.

AI-assistenter foreslår cmdlets, forklarer scripts adfærd og registrerer fejl, mens du skriver. De hjælper administratorer med at automatisere opgaver hurtigere og konvertere anmodninger på almindeligt engelsk til fungerende PowerShell-kommandoer.

Ja. AI-kodeassistenter genererer komplette PowerShell-scripts ud fra en beskrivelse på almindeligt engelsk, f.eks. "angiv alle stoppede tjenester og genstart dem", og forklarer hver cmdlet, så du kan gennemgå dem, før du kører dem.

Opsummer dette indlæg med: