Hvad er Windows PowerShell Scripting?

Nøgle takeaways

  • PowerShell er et scriptsprog, der kan hjælpe med at automatisere computeropgaver.
  • Cmdlets er enkeltfunktions Powershell-kommandoer. Du kan se tilgængelige kommandoer med “Get-Command”.
  • PowerShell er tilgængelig på Windows, macOS og Linux.

PowerShell er et scriptsprog, der kan hjælpe dig med at automatisere computeropgaver enkelt og pålideligt. Find ud af, hvordan du bruger det til at begynde at bygge scripts til din Windows-pc.

PowerShell Scripting Oversigt

For at begynde at lave simple PowerShell-scripts på Windows skal du vide om tre ting:

  • Cmdlets: enkeltfunktionskommandoer.
  • Parametre: specificer hvad, hvornår, hvor og hvordan for Cmdlets/kommandoer.
  • Pipeline: tager outputtet fra din Cmdlet og dens parametre og forbinder den med andre Cmdlet’er og funktioner.

Ved at kombinere alle tre kan du lave enkle scripts for at hjælpe med at automatisere opgaver.

Her er et eksempel på en pipeline, der viser, hvordan du kan kombinere flere Cmdlets for at opnå en opgave:

For at køre denne pipeline i PowerShell, ville du bruge noget som denne kommando:

 Get-Object Potato | Peel-Object | Chop-Object Chips| Cook-Object DeepFry `
  | Place-Object Bowl

Cmdlets i detaljer

Som ethvert scriptsprog kommer PowerShell forudbygget med kommandoer til at manipulere objekter og udføre forskellige opgaver. Disse grundlæggende kommandoer i PowerShell er kendt som Cmdlets.

Cmdlets (udtales som command-lets) er små enkeltfunktionskommandoer, der bruges i PowerShell-miljøet ved hjælp af .dll-udvidelsen. De er lette stykker kode, der udføres hurtigere end funktioner på grund af deres kompilerede natur.

  Ret Windows 10-opdateringsfejl 0XC1900200

Der er tusindvis af Cmdlets tilgængelige på PowerShell. Du behøver ikke at lære dem alle. Du kan starte med at lære et par grundlæggende PowerShell Cmdlets og derefter fortsætte med at lære, mens du går gennem din scriptrejse. For at se de Cmdlet’er, der allerede er installeret på din computer, skal du køre:

 Get-Command 

Hvis du scanner resultaterne igennem, vil du bemærke, at de følger en verbum-substantiv-navngivningskonvention. Dette gør det lettere at forstå, hvad en bestemt Cmdlet gør.

For eksempel giver Get-Command en liste over tilgængelige kommandoer i PowerShell. Get-Process giver dig de processer, der i øjeblikket er aktive, og Copy-Item kopierer en eller flere filer til en bestemt mappe.

Cmdlet’er leveres også med omfattende dokumentation, der inkluderer eksempler, brugsinstruktioner og forklaringer af deres funktionalitet.

For at finde ud af mere om en specifik Cmdlet, og hvordan du bruger den, skal du køre:

 Get-Help <name-of-cmdlet> 

PowerShell-parametre forklaret

Cmdlets kan acceptere parametre for at variere deres adfærd. Når du kører en Cmdlet eller funktion, kan du angive parameterværdier for at angive hvad, hvornår, hvor og hvordan hver PowerShell-kommando kører.

For eksempel vil Get-Process hente og liste over alle de aktive processer i dit operativsystem:

Men hvad nu hvis du kun ønsker at få en bestemt proces? Du kan gøre det ved hjælp af parametre. For at få alle Slack-processer kan du f.eks. bruge parameteren Navn med Get-Process Cmdlet:

 Get-Process -Name Slack 

Du vil så kun se de processer med navnet “slack”:

  Sådan finder du alle billeder på din Windows 10-enhed

Nogle parametre er “positionelle”, hvilket betyder, at deres navn er valgfrit. I dette tilfælde gør Get-Process -Name Slack og Get-Process Slack det samme.

Hver Cmdlet vil acceptere forskellige typer parametre. Brug kommandoen Get-Help til at se de accepterede parametre for en Cmdlet i SYNTAX sektionen.

 Get-Help Get-Process 

Du vil se en liste over alle mulige måder, du kan køre den givne Cmdlet på:

I dette tilfælde accepterer Get-Process Cmdlet’en parametre såsom Navn, Id, Computernavn, Modul, FileVersionInfo og andre almindelige parametre. Symbolerne her betyder:

Symbol

Navn

Betyder

Blank

Parameter accepterer ikke input

Bindestreg

Angiver parameternavn

<>

Vinklede beslag

Pladsholder til tekst

[]

Beslag

Parameter, der kan acceptere en eller flere værdier

{}

Seler

Parameter accepterer et sæt værdier

Parametre, der accepterer input, vil angive den type data, de kræver, såsom en streng, heltal, boolean eller DateTime. For eksempel dette:

 Get-Process [[-Name] <string[]>] 

Betyder, at Name-parameteren accepterer en eller flere strengværdier, mens denne:

 Get-Process -Id <int[]> 

Betyder, at Id-parameteren accepterer en eller flere heltalsværdier.

Det tidligere Get-Process-eksempel brugte Name-parameteren til at indsnævre resultaterne. Men hvis du vil indsnævre det til en endnu mere specifik proces, kan du bruge ID-parameteren, som kræver et heltal som angivet i dets syntaks.

 Get-Process -Id 3016 

Du skulle så kun se én proces på listen:

  Sådan opdeles og justeres Windows med tastaturgenveje på macOS

Oprettelse af en rørledning

PowerShell behandler alle data som objekter. For at bygge et script flyder disse objekter gennem en række Cmdlets eller funktioner forbundet med et rørsymbol ( | ). At vælge de rigtige Cmdlets og forbinde dem i en logisk rækkefølge ved hjælp af pipeline er afgørende for et effektivt script.

Lad os sige, at du opretter et script til at sortere og vise de fem filer, der tager mest lagerplads i en mappe. Der er mere robuste måder at oprette et filsorteringsscript på, men følgende one-liner er let at forstå:

For at gøre dette i PowerShell skal du bruge en pipeline, der ser sådan ud:

 Get-ChildItem -Path "C:\Directory" -File | Sort-Object Length -Descending `
 | Select-Object -First 5 | Format-Table Name, Length -AutoSize

Gemmer Pipeline som et PS1-script

Nu hvor vi har en fungerende pipeline, kan du gemme den som en PS1-scriptfil, så du ikke behøver at blive ved med at skrive den, hver gang du bruger den.

Den enkleste måde at oprette en PS1-fil på er at indsætte dit script i Notesblok og gemme filen med filtypenavnet .ps1.

Når du har oprettet din PS1-fil, kan du bruge den i PowerShell ved at køre ./ScriptName.ps1:

Tillykke! Du kan nu oprette PowerShell PS1-scripts.

PowerShell er også tilgængelig på Linux og macOS

PowerShell er et af de bedste begynder-scriptsprog, nogen kan lære. Selvom PowerShell kun var begrænset til Windows tidligere, er den opdaterede version af PowerShell nu også tilgængelig på macOS og mange Linux-distributioner! Dette gør PowerShell endnu mere tiltalende, da du kan overføre din viden fra Windows til andre operativsystemer.