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