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.
















