PowerShell for begyndere 1

Historie

Du har arbejdet med Kommandoprompt, BAT-filer og måske endda også Visual Basic scripts (VBScript), men tiden er løbet fra dem og Windows har i +10 år udviklet på PowerShell. PowerShell er måske anderledes end end gamle Kommandoprompt, men den fungerer på samme måde. Det er en tekstbaseret linjekonsol der har en masse stærke- og tidsbesparende funktionaliter.

Det er enkelt at starte PowerShell. Du skriver blot “powershell” i din Windows søgelinje, vælger programmet eller går i Kør og skriver powershell.

Så er du klar til dine første kommandoer:

De klassiske kommandoer: dir (Directory),cd (Change directory), ipconfig, netstat og meget andet virker stadig i PowerShell.

Cmdlets Command-lets

Cmdlets er det man kalder de enkelte scripts/funktioner i PowerShell. I hvert fald hvis man ikke tilgår .NET biblioteket direkte. Et Cmdlet har et eller flere definerede handlinger og kan kalde .NEt objekter. De kan stort set alt hvad du kan ønske dig: læsning og skrivning af filer, adgang til registreringsdatabasen, arrays, variabler, loops, start-stop af services og der udvikles hele tiden nye funktionaliteter. I denne guide vil vi dog gå let til værks med basale funktioner som at få hjælp get-help eller bruge en kommandoget-command.

En række af de mest almindelige “standard gets” er

  • Get-Service
  • Get-Process
  • Get-Help (Get-Help -Full)
  • Get-Command
  • Get-EventLog

Kigger vi på eksempelvis Get-Command kan man bruge *-funktionen | indsnævre ens søgning på kommandoer. Skriv f.eks Get-Command * Service

Så får man en liste over de Cmdlets der indeholder ordet service. Så hvis vi eksempelvis gerne vil genstarte en service, har vi nu fundet Restart-Service cmdlet. Vi ved endnu ikke hvordan vi anvender den, men det kan vi finde ud af mere omkring ved at skrive: Get-Help Restart Service.

Skulle det ikke være dækkende nok, kan man bare tilføjre parameteren -Online også åbner din browser Microsofts hjælpeside på den cmdlet man har forespurgt på:

New-Item – Oprette filer og mapper

Denne cmdlet benyttes til at oprette en mappe ved at opgive stien ved hjælp af -Path som stien til mappen og -ItemType som mappen.

F.eks New-Item -Path 'c:\test\Test mappe' -ItemType Directory. Det giver følgende Output:

Og som det ses i GUI dannes den:

Hvis vi så i stedet for en mappe ønsker at oprette en fil, ser det ikke meget forskelligt ud fra før. Den eneste forskel er at ItemType ændres fra Directory til File. Denne gang prøver vi at oprette en tekstfil med navnet test fil.txt:

Vi skriver i PowerShell: New-Item -Path 'c:\test\Test mappe\test fil.txt' ItemType File

Copy-Item – Kopiere en mappe eller fil

For at kopiere en mappe bruger vi kommandoen Copy-Item . I dette eksempel kopierer vi mappen c:\test\Test mappe\ til c:\test\Test mappe1\. Indtast følgende cmdlet i PowerShell prompten: Copy-Item 'c:\test\Test mappe\' 'c:\test\Test mappe1\'

Kigger vi i Test mappe1 kan vi se at denne er tom, men vi har jo lige oprettet test fil.txt tidligere… Det er fordi vi ikke har bedt om at få kopieret indholdet af mappen med over. En såkaldt rekursiv eller gentagen funktion. Det prøver vi nu. Skriv Copy-Item -Path 'c:\test\Test mappe\*' -Destination 'c:\test\Test mappe1\' -Recurse Nu følger både mappe og fil med over.

Remove-Item – Slette filer og/eller mapper

For at slette filer bruger man cmdlet Remove-Item og i dette eksempel sletter vi Test mappe1 Remove-Item 'c:\test\Test mappe 1'

Men der er jo filer i mappen, så PowerShell tjekker lige om man ønsker at slette de underliggende filer og mapper. Vi siger [N] nej og prøver igen, rekursivt.

Remove-Item 'c:\test\Test mappe 1' -Recursive

Princippet er akkurat det samme for sletning af filer som oprettelse

Remove-Item 'c:\test\Test mappe\Test fil.txt'

Move-Item – Flyt mappe og/eller filer

Move-Item 'c:\test\Test mappe\' 'c:\test\Test mappe1'

Move-Item 'c:\test\Test mappe\'Test fil.txt 'c:\test\Test mappe1'

Flytter filen fra Test mappe til Test mappe1