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: