intro til powershell - ntnu.no ls01-intro til powershell... · intro til powershell side 2 av 12...

12
Opphavsrett: Forfatter Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Intro til PowerShell Stein Meisingseth 15.05.2014 Lærestoffet er utviklet for faget IDRI3005 PowerShell 1. Intro om PowerShell Resymé: Denne leksjonen inneholder en intro om hva PowerShell er og en intro til de mest bruket kommadoer. Innhold 1. INTRO OM SHAREPOINT 2013 .............................................................................................................. 1 2. HISTORIE ................................................................................................................................................... 2 2.1. BAKGRUNN ........................................................................................................................................... 3 2.2. VERSJONER........................................................................................................................................... 4 PowerShell versjon 1.0 .................................................................................................................................. 4 PowerShell versjon 2.0 .................................................................................................................................. 4 PowerShell versjon 3.0 .................................................................................................................................. 4 PowerShell versjon 4.0 .................................................................................................................................. 5 2.3. SYSTEMKRAV ....................................................................................................................................... 5 3. KOM I GANG MED POWERSHELL ...................................................................................................... 6 3.1. 2.1 HVORDAN KJØRE EN KOMMANDO ................................................................................................... 6 Starte PowerShell .......................................................................................................................................... 6 PowerShell som administrator ...................................................................................................................... 7 2.1.2 Kjøre PowerShell kommandoer ............................................................................................................ 7 3.2. 2.2 BASIS KUNNSKAPER ........................................................................................................................ 8 Hvordan finne kommandoer .......................................................................................................................... 8 Hvordan bruke hjelp kommandoen................................................................................................................ 8 2.2. tab funksjonen ......................................................................................................................................... 9 2.2. navigering ............................................................................................................................................... 9 Utlisting av informasjon i en mappe ............................................................................................................ 11 Kopiere og flytte .......................................................................................................................................... 11

Upload: lengoc

Post on 03-Apr-2018

223 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Intro til PowerShell - ntnu.no ls01-intro til powershell... · Intro til PowerShell side 2 av 12 Opphavsrett: Forfatter og stiftelsen TISIP 2. Historie Her skal vi se litt på hva

Opphavsrett: Forfatter

Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag

Intro til PowerShell Stein Meisingseth

15.05.2014

Lærestoffet er utviklet for faget IDRI3005 PowerShell

1. Intro om PowerShell

Resymé: Denne leksjonen inneholder en intro om hva PowerShell er og en intro til de mest

bruket kommadoer.

Innhold

1. INTRO OM SHAREPOINT 2013 .............................................................................................................. 1

2. HISTORIE ................................................................................................................................................... 2

2.1. BAKGRUNN ........................................................................................................................................... 3 2.2. VERSJONER ........................................................................................................................................... 4

PowerShell versjon 1.0 .................................................................................................................................. 4 PowerShell versjon 2.0 .................................................................................................................................. 4 PowerShell versjon 3.0 .................................................................................................................................. 4 PowerShell versjon 4.0 .................................................................................................................................. 5

2.3. SYSTEMKRAV ....................................................................................................................................... 5

3. KOM I GANG MED POWERSHELL ...................................................................................................... 6

3.1. 2.1 HVORDAN KJØRE EN KOMMANDO ................................................................................................... 6 Starte PowerShell .......................................................................................................................................... 6 PowerShell som administrator ...................................................................................................................... 7 2.1.2 Kjøre PowerShell kommandoer ............................................................................................................ 7

3.2. 2.2 BASIS KUNNSKAPER ........................................................................................................................ 8 Hvordan finne kommandoer .......................................................................................................................... 8 Hvordan bruke hjelp kommandoen ................................................................................................................ 8 2.2. tab funksjonen ......................................................................................................................................... 9 2.2. navigering ............................................................................................................................................... 9 Utlisting av informasjon i en mappe ............................................................................................................ 11 Kopiere og flytte .......................................................................................................................................... 11

Page 2: Intro til PowerShell - ntnu.no ls01-intro til powershell... · Intro til PowerShell side 2 av 12 Opphavsrett: Forfatter og stiftelsen TISIP 2. Historie Her skal vi se litt på hva

Intro til PowerShell side 2 av 12

Opphavsrett: Forfatter og stiftelsen TISIP

2. Historie Her skal vi se litt på hva Windows PowerShell er, hvilke versjoner av PowerShell som finnes

og hva som var bakgrunnen for at det kom. Det har vært en svært rask utvikling av versjoner i

PowerShell, dette illustreres bra ved at PowerShell versjon 1, som ble utgitt i 2006, bare

inneholdt 129 cmdlets, mens PowerShell 3.0 som ble utgitt i 2012 inneholder over 2 000

cmdlets og funksjoner. I tillegg til dette er det nå kommet en versjon 4! som vi skal benytte

som utgangspunkt i boken. Hva er PowerShell

Windows PowerShell er Microsoft sitt oppgave og konfigurasjons rammeverk. PowerShell

består av et kommandolinje-shell og et scriptmiljø som bygger på .NET platformen til

Microsoft. PowerShell introduserer også en ny type kommando kalt cmdlet. Cmdlets er

spesialiserte .net klasser som er bygd opp på formen verb-substantiv. F.eks Get-help, Get-

Process osv.

I og med at PowerShell baserer seg på .NET plattformen til Microsoft, er PowerShell

objektorientert. Dette er også viktig å få med seg, spesielt om man er vant med cmd.exe. I

cmd.exe er det som står på skjermen bare tekst, mens i PowerShell er det som vises på

skjermen objekter, og kan benyttes videre.

Page 3: Intro til PowerShell - ntnu.no ls01-intro til powershell... · Intro til PowerShell side 2 av 12 Opphavsrett: Forfatter og stiftelsen TISIP 2. Historie Her skal vi se litt på hva

Intro til PowerShell side 3 av 12

Opphavsrett: Forfatter og stiftelsen TISIP

2.1. Bakgrunn

Alle versjoner av Microsoft DOS og Microsoft Windows har hatt et kommandolinje

grensesnitt. Vi tenker selvfølgelig på COMMAND.COM og cmd.exe. COMMAND.COM var

inkludert i MS-DOS. cmd.exe tok over for COMMAND.COM i OS/2 og Windows NT

systemer. Shell-et fungerer ved at du kan kjøre noen få basiskommandoer, shell-et inneholder

også et språk for scripting (batch), dette kan brukes for å automatisere oppgaver.

Teknologien er i stadig utvikling og ettersom operativsystem og programmer ble mer

avanserte, ble administratorer mer og mer avhengig av å automatisere arbeidsoppgaver.

Microsoft prøvde først å løse dette ved å slippe ut Windows Script Host (tidligere kjent som

Microsoft Script Host), dette ble sluppet ut sammen med Windows 98 i 1998. WSH var et

kommandobasert program som kunne håndtere noen få scriptspråk, som Jscript og VBscript,

man kan også installere scriptmotorer f.eks PerlScript. WSH tilbyr et miljø der script kan

kjøre, det kaller riktig scriptmotor og tilbyr et sett med tjenester og objekter som scriptet kan

benytte. Problemet med WSH er at det bare tilbyr scriptegenskaper på lik linje med batch-

filer, men med et bredere spekter av støttede tjenester.

I 2003 startet Microsoft utviklingen av et shell som var både stabilt og brukervennlig. Dette

kom i form av «Monad», første betaversjon av Monad kom ut 17. Juni 2005. Microsoft skiftet

navn på Monad til PowerShell 25. April 2006, denne kom ut sammen med Windows Vista

den 30. januar 2007.

«The traditional approach to composing solutions is difficult and fragile. It uses pipelines to

perform prayer-based parsing of text streams. These mechanisms are awkward, inconsistent,

and imprecise. Admins spend the majority of their thought process on mechanisms instead of

problem solving. Monad takes a different approach providing a precise, powerful script

execution engine for creating pipelines of .Net objects. Instead of piping unstructured text,

we pipe .Net objects». -Monad Manifesto

Vi ser fra utdraget at selv om vi hadde verktøy for administrering via kommandoer, så var

dette ekstremt dårlig. Vi kan si at vi hadde skikkelige verktøy for programmering og dårlige

verktøy for administrering via kommandokjøring, ettersom programmeringsspråkene er

ganske tunge, er dette noe administratorer er litt tvilsomme til å bruke, eller ikke har tid til å

lære seg. Vi kan dermed si at vi mangler en mellomting, som er enkel for administratorer å

sette seg inn i og som fungerer tilfredsstillende til administrering via kommandoer.

Page 4: Intro til PowerShell - ntnu.no ls01-intro til powershell... · Intro til PowerShell side 2 av 12 Opphavsrett: Forfatter og stiftelsen TISIP 2. Historie Her skal vi se litt på hva

Intro til PowerShell side 4 av 12

Opphavsrett: Forfatter og stiftelsen TISIP

2.2. Versjoner

Siden Microsoft lanserte PowerShell er det kommet fire versjoner. De strekker seg fra versjon

en til versjon fire. I dette kapittelet skal vi se nærmere på hver versjon, vi skal ta for oss noe

av det som er nytt i hver versjon og hvilke operativsystem som er støttet i de forskjellige

versjonene.

PowerShell versjon 1.0

PowerShell versjon 1.0 ble utgitt i April 2006 og er tilgjengelig for Windows XP Service

Pack 2/3, Windows Server 2003 og Windows Vista. Det var også inkludert i Windows Server

2008 som en valgfri tjeneste. PowerShell versjon 1.0 inneholder 129 cmdlets.

PowerShell versjon 2.0

PowerShell versjon 2.0 ble utgitt i August 2009 og er integrert i Windows 7 og Windows

Server 2008 R2, den er også sluppet til Windows XP Service Pack 3, Windows Server 2003

Service Pack 2 og Windows Vista Service Pack 1. Her er det gjort noen endringer til språket

som brukes til scripting, samt mer enn 240 nye cmdlets.

De viktigste egenskapene til PowerShell 2.0 er:

Windows PowerShell ISE

PowerShell Remoting

Bakgrunns jobber (PSJob)

Script debugging

Eventing – kan bruke management og system events til å få script til å kjøre.

Det kom også mer enn 240 nye cmdlets.

PowerShell versjon 3.0

PowerShell versjon 3.0 ble utgitt i September 2012 og er integrert i Windows 8 og Windows

Server 2012, det er også tilgjengelig for Windows 7 Service Pack 1, Windows Server 2008

Service Pack 1 og Windows Server 2008 Service Pack 1.

De viktigste nye egenskapene til PowerShell 3.0 er:

Scheduling

Forbedret scripteditor (ISE)

Delegering av rettigheter

Mulighet til å oppdatere hjelpefiler

Nye kommandoer – nye moduler og cmdlets automatiserer print management.

Page 5: Intro til PowerShell - ntnu.no ls01-intro til powershell... · Intro til PowerShell side 2 av 12 Opphavsrett: Forfatter og stiftelsen TISIP 2. Historie Her skal vi se litt på hva

Intro til PowerShell side 5 av 12

Opphavsrett: Forfatter og stiftelsen TISIP

PowerShell versjon 4.0

PowerShell versjon 4.0 kom sammen med Windows 8.1 og Windows Server 2012 R2. Det er

også tilgjengelig for Windows 7 SP 1, Windows Server 2008 R2 SP1 og Windows Server

2012.

De viktigste nye egenskapene til PowerShell 4.0 er:

Ny default policy (endret til RemoteSigned på servere)

Forbedret debugging

Nye cmdlets og parametere til eksisterende cmdlets

2.3. Systemkrav

Her tar vi for oss systemkravene til Windows PowerShell 4.0, siden dette er den nyeste

PowerShell versjonen som er kommet ut.

Windows PowerShell 4.0 kjører på følgende versjoner av Windows.

Windows 8.1, dette er også integrert i operativsystemet

Windows Server 2012 R2, dette er integrert i operativsystemet

Windows 7 med Service Pack 1 (Må ha installert Windows Management Framework

4.0)

Windows Server 2008 R2 med Service Pack 1 (Må ha installert Windows

Management Framework 4.0)

Windows PowerShell 4.0 krever at man har installert Microsoft .NET Framework 4.5.

Windows PowerShell 4.0 krever at man har installert Windows Management Instrumentation

3.0 (WMI)

Page 6: Intro til PowerShell - ntnu.no ls01-intro til powershell... · Intro til PowerShell side 2 av 12 Opphavsrett: Forfatter og stiftelsen TISIP 2. Historie Her skal vi se litt på hva

Intro til PowerShell side 6 av 12

Opphavsrett: Forfatter og stiftelsen TISIP

3. Kom i gang med PowerShell

3.1. 2.1 Hvordan kjøre en kommando

Starte PowerShell

Vi skal nå se på hvordan en kan kjøre en kommando i PowerShell fra kommandolinjen.

Alle Windows maskiner siden Windows XP har kommet med forhåndsinstallerte PowerShell

versjoner. For å kunne åpne PowerShells kommandovindu kan en trykke på start knappen å

skrive inn PowerShell. Det som vises under er et bilde av hvordan det ser ut når en trykker på

start knappen for så å skrive inn PowerShell på en Windows 8 maskin.

Når en har funnet PowerShell på maskinen og åpnet det vil det se slik ut:

Page 7: Intro til PowerShell - ntnu.no ls01-intro til powershell... · Intro til PowerShell side 2 av 12 Opphavsrett: Forfatter og stiftelsen TISIP 2. Historie Her skal vi se litt på hva

Intro til PowerShell side 7 av 12

Opphavsrett: Forfatter og stiftelsen TISIP

PowerShell som administrator

Nå skal vi lære rask hvordan en kjører PowerShell som administrator. PowerShell som

administrator fungere ved å høyre klikke på PowerShell ikonet og velger «Run as

Adminstaror» og «kjør som administrator»

2.1.2 Kjøre PowerShell kommandoer

Det er viktig å være klar over hvordan PowerShell er bygd opp for virkelig å kunne bruke det.

PowerShell er bygd opp ved verb-substantiv. Gjennom denne oppbygningen er det lett å vite

hva en kan forvente seg av hver kommando. Denne kommandoen utfører det samme cd

(UNIX) og set-location (PowerShell). Det er lett å skjønne at set-location endrer hvor en står i

mappehierarkiet, men det er ikke lett å skjønne at cd utfører samme oppgave.

For å vise hvordan en kan kjøre en kommando skal vi i dette eksempelet benytte oss av

process kommandoen. Først skal vi starte en prosess ved hjelp av programmet notepad.exe.

Etter det skal vi finne den prosessen og til slutt skal vi stoppe notepad prosessen.

Starter notepad

Deretter skal vi finne notepad prosessen. Det gjør vi ved å benytte oss av get-process. Get-

process kommandoen lister ut alle prosesser som kjører på maskinen derfor skriver vi notepad

bak get-process for å bare liste ut notepad prosesser.

Nå skal vi stoppe prosessen. Det er flere måter en kan stoppe en prosess på, men de to

vanligste er å stoppe en prosess på enten ProcessName eller «Id». Faren ved å stoppe en

prosess ved hjelp av ProcessName er at flere prosesser kan ha det samme navnet, og dermed

kan en avslutte en prosess som en ikke hadde tenkt til å avslutte. I vårt tilfelle er det bare en

prosess som har ProsessName notepad så faren er liten, men som er regel så er det lurt å

benytte seg av «Id» hvis en bare skal avslutte en prosess. Da har en full kontroll over hva som

blir avsluttet siden hver prosess har et unikt Id-nummer.

Page 8: Intro til PowerShell - ntnu.no ls01-intro til powershell... · Intro til PowerShell side 2 av 12 Opphavsrett: Forfatter og stiftelsen TISIP 2. Historie Her skal vi se litt på hva

Intro til PowerShell side 8 av 12

Opphavsrett: Forfatter og stiftelsen TISIP

3.2. 2.2 basis kunnskaper

Hvordan finne kommandoer

Noen ganger er en ikke helt sikker på hva en trenger for å utføre en kommando, men en har en

ide hva en trenger. Det kan være at en vet verbet og ikke substantivet, eller en vet at en

kommandoen har en get kommando men en er ikke sikker på de andre verbene til

kommandoen.

For å kunne benytte seg av get-command er det viktig å vite om bruk av *. Bruk av * tar alle

muligheter. Som en kan se fra eksemplet tar en alle kommandoer som inneholder item.

For å finne en kommando der en vet verbet, men ikke substantivet. Da kan en bruke

kommandoen:

Get-Command «verb»-*

For å finne ut hvilke verb varianter et substantiv har:

Get-Command *-«substantiv»

Hvordan bruke hjelp kommandoen

Første gang en skal bruke hjelp kommandoen er det viktig å oppdatere hjelp funksjonen. Det

gjør en med kommandoen:

Update-Help -Force

Hjelp kommandoen er en veldig nyttig hjelpemiddel når en skal benytte en kommando en

ikke er kjent med fra før. De som er kjent med UNIX vet at dette ikke er noe nytt.

PowerShells hjelp funksjon tilbyr informasjon om kommandoen en ønsker og eksempel for

kommandoen med noen opsjoner. Og ved å kunne benytte seg av hjelp kommandoen vil en

kunne forstå hva en kommando gjør og ikke minst hva den trenger for å fungere.

Page 9: Intro til PowerShell - ntnu.no ls01-intro til powershell... · Intro til PowerShell side 2 av 12 Opphavsrett: Forfatter og stiftelsen TISIP 2. Historie Her skal vi se litt på hva

Intro til PowerShell side 9 av 12

Opphavsrett: Forfatter og stiftelsen TISIP

I dette eksempelet skal vi vise hjelp informasjon om get-process kommandoen:

Nå skal vi få et eksempel med bruk av -Eksamples opsjonen. Da får en tips til bruk av Get-

Process og hva som blir utført ved å bruke den opsjonen. Det vil variere hvor mange opsjoner

som er vist med eksempler på hver opsjon. En kan se at Get-Process:

2.2. tab funksjonen

De som har vært borti UNIX vet at ved hjelp av Tab funksjonen kan effektivisere og

minimere skrivefeil når en skriver i kommandolinjen. Tab funksjonen hjelper brukeren å

fullføre en kommandoer og opsjoner.

For å benytte seg av Tab funksjonen kan en prøve å skrive inn get-co<tab> -n<tab> da vil en

se at PowerShell forandrer dette om til Get-Command –name. Her kan en tydelig se at det går

raskere, og det minimere å gjøre enkle skrivefeil. Det er lurt å lære seg dette så tidlig som

mulig, for på lang sikt vil dette kunne spare deg for mye tid.

2.2. navigering

Nå skal vi lære hvordan en kan navigere seg rundt i filsystemet. De som har vært borti DOS

og UNIX vet at en kan benytte seg av «cd» for å navigere, men siden PowerShell benytter seg

av verb-substantiv vil en helst gå bort fra «cd» kommandoen og over til PowerShells egen

kommando som er set-location.

Page 10: Intro til PowerShell - ntnu.no ls01-intro til powershell... · Intro til PowerShell side 2 av 12 Opphavsrett: Forfatter og stiftelsen TISIP 2. Historie Her skal vi se litt på hva

Intro til PowerShell side 10 av 12

Opphavsrett: Forfatter og stiftelsen TISIP

Nå skal vi vise noen varianter av set-location:

I dette eksempelet skal vi gå fra mappen «C:\PowerShell\» til C:\PowerShell\test. Som du kan

se benytter vi oss av set-location og stien til test mappen.

I sist eksempel var kunne en se at det var litt tungvint å skrive hele stien når en allerede

stående mappe var C:\PowerShell\. Dermed skal vi forbedre det ved å benytte oss av .\ bak

set-location. Når en skriver .\ bak set-location vil en bruke stående mappe som utgangspunkt.

Da kan en gjør kommandoen som tidligere ble brukt litt kortere.

Et annet eksempel er bruk av to punktum etter set-location. Da vil en gå et hopp tilbake i

mappetreet. Dette er en lett måte å flytte seg et hakk opp i mappetreet.

Page 11: Intro til PowerShell - ntnu.no ls01-intro til powershell... · Intro til PowerShell side 2 av 12 Opphavsrett: Forfatter og stiftelsen TISIP 2. Historie Her skal vi se litt på hva

Intro til PowerShell side 11 av 12

Opphavsrett: Forfatter og stiftelsen TISIP

Utlisting av informasjon i en mappe

Nå skal vi liste ut alt av informasjon som er i en mappe. DOS og UNIX bruker «ls» for å liste

ut informasjon PowerShell benytter «get-childItem» for utlisting av informasjon av en mappe.

Vi skal nå liste ut informasjon i stående mappe:

Det andre eksempelet skal vi liste ut informasjon ut fra C:\ når vi står i en annen mappe. Vi

benytter opsjonen -path for å spesifisere stien til mappen:

Kopiere og flytte

Vi skal nå se på hvordan vi kan flytte og kopiere en fil.

Nå skal vi kopiere fila hei.txt over til mappa test. Vi bruker punktum for å spesifisere hvor vi

er, dermed slipper vi å skrive hele stien siden vi er i stående mappe.

Page 12: Intro til PowerShell - ntnu.no ls01-intro til powershell... · Intro til PowerShell side 2 av 12 Opphavsrett: Forfatter og stiftelsen TISIP 2. Historie Her skal vi se litt på hva

Intro til PowerShell side 12 av 12

Opphavsrett: Forfatter og stiftelsen TISIP

Det andre eksempelet skal vi flytte alle filer med filtype .txt fra stående mappe til mappen

test. Som en kan se bruker vi * når vi skal flytte flere filer, som nevnt tidligere betyr det alle: