|
|
(8 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
− | =Tidsplan=
| + | Denne side er tom.. |
− | {|border=1 ;style="margin: 0 auto; text-align: center;cellpadding="5" cellspacing="0"
| |
− | |+ Tidsplan
| |
− | |- bgcolor=lightgrey
| |
− | ! Dag !! emne
| |
− | |-
| |
− | |Mandag || Intro til PowerShell
| |
− | |-
| |
− | |Tirsdag || Introduktion til Scriptprogrammering
| |
− | |-
| |
− | |Onsdag || Automatisering af opgaver
| |
− | |-
| |
− | |Torsdag || praktisk projekt
| |
− | |-
| |
− | |Fredag || Multiple-choice test og evaluering
| |
− | | |
− | |}
| |
− | | |
− | =Generelt=
| |
− | | |
− | Underviser:
| |
− | Mads Kristian Nielsen
| |
− | | |
− | E-mail:
| |
− | MaKn@mercantec.dk
| |
− | | |
− | =Mandag=
| |
− | | |
− | For at finde hjælp i powershell, skriv da:
| |
− | <source lang="VB">
| |
− | Get-Help searchForThisWord
| |
− | </source>
| |
− | | |
− | | |
− | ==Opgaver:==
| |
− | | |
− | '''1. Hvordan søger vi efter hjælp i powershell?'''
| |
− | | |
− | ''Resultat:'' Get-Help
| |
− | | |
− | '''2. Hvordan udskriver man alt hvad der er i den mappe som brugeren befinder sig?'''
| |
− | | |
− | ''Resultat:'' dir eller ls
| |
− | | |
− | '''3. Hvordan skifter man den sti som brugeren befinder sig i?'''
| |
− | | |
− | ''Resultat:'' cd C:\users\MyUser\Desktop\
| |
− | | |
− | '''4. Hvordan kopieres en fil?'''
| |
− | | |
− | ''Resultat:'' Copy-Item C:\Users\MaKN\Desktop\ipconfig.txt C:\Users\MaKN\
| |
− | | |
− | '''5. Hvordan slettes en fil?'''
| |
− | | |
− | ''Resultat:'' Remove-Item C:\Users\MaKN\Desktop\ipconfig.txt
| |
− | | |
− | '''6. Hvordan opretter vi en textfil?'''
| |
− | | |
− | ''Resultat:'' "Dette er tekst" > textDoc.txt
| |
− | | |
− | '''7. Hvordan tilføjer vi tekst til filen uden at slette indholdet?'''
| |
− | | |
− | ''Resultat:'' Add-Content C:\Users\MaKN\Desktop\myTextDocument.txt "Hej!"
| |
− | | |
− | '''8. Hvad er et alias?'''
| |
− | | |
− | ''Resultat:'' En genvej til en kommando
| |
− | | |
− | '''9. Hvordan oprettes et alias?'''
| |
− | | |
− | ''Resultat:'' new-alias append add-content
| |
− | | |
− | '''10. Hvordan startes lommeregneren fra powershell'''
| |
− | | |
− | ''Resultat:'' calc.exe
| |
− | | |
− | '''11. Hvordan ses en liste over kørende processer på computeren?'''
| |
− | | |
− | ''Resultat:'' Get-Process
| |
− | | |
− | '''12. Hvordan lukkes lommeregneren fra powershell?'''
| |
− | | |
− | ''Resultat:'' Stop-process [id]
| |
− | | |
− | '''13. Hvordan tilgås registreringsdatabasen i powershell? (hint hkcu)'''
| |
− | | |
− | ''Resultat:'' Get-ChildItem hkcu:\
| |
− | | |
− | '''14. Opret en ny nøgle i registreringsdatabasen under SOFTWARE med navnet test'''
| |
− | | |
− | ''Resultat:'' New-Item hkcu:\SOFTWARE\test
| |
− | | |
− | '''15. Slet nu test fra SOFTWARE'''
| |
− | | |
− | ''Resultat:'' Remove-Item hkcu:\SOFTWARE\test
| |
− | | |
− | ==Scripting==
| |
− | | |
− | '''For at oprette en variabel skrives:'''
| |
− | <source lang="VB">
| |
− | $minVariabel = "hej"
| |
− | </source>
| |
− | | |
− | '''For at skrive til brugeren:'''
| |
− | <source lang="VB">
| |
− | Write-host "Hej bruger."
| |
− | </source>
| |
− | | |
− | '''For at indlæse indtastet tekst fra brugeren skrives:'''
| |
− | <source lang="VB">
| |
− | $brugerinput = read-Host
| |
− | </source>
| |
− | | |
− | | |
− | ==Scripting opgaver==
| |
− | | |
− | '''Opgave 1:''' Lav et script hvor brugeren indtaster et stykke tekst, som så bliver gemt på skrivebordet som UserInput.txt
| |
− | | |
− | ''Løsning:''
| |
− | <source lang="VB">
| |
− | Write-Host "Indtast et stykke tekst:"
| |
− | $UserInput = Read-Host
| |
− | | |
− | $UserInput > C:\Users\MaKN\Desktop\UserInput.txt
| |
− | Write-Host "Dit input blev gemt på skrivebordet."
| |
− | </source>
| |
− | | |
− | '''Opgave 2:''' Lav et script der indlæser hvad brugeren skrev i tekstfilen i en variabel.
| |
− | | |
− | ''løsning:''
| |
− | <source lang="VB">
| |
− | $ReadFile = Get-Content C:\Users\MaKN\Desktop\UserInput.txt
| |
− | Write-Host "The input was:" $ReadFile
| |
− | </source>
| |
− | | |
− | '''opgave 3:''' Lav et script der kan pinge en indtastet IP. Scriptet skal så gemme resultatet i en textfil på skrivebordet.
| |
− | | |
− | ''løsning:''
| |
− | <source lang="VB">
| |
− | Write-Host "Type an IP to ping"
| |
− | $ip = Read-Host
| |
− | | |
− | ping $ip > C:\Users\MaKN\Desktop\ipResult.txt
| |
− | </source>
| |
− | | |
− | '''Opgave 4:''' Lav et script hvor brugeren indtaster 2 tal, som så bliver lagt sammen (som en lommeregner)
| |
− | | |
− | ''løsning:''
| |
− | <source lang="VB">
| |
− | Write-Host "Type first number"
| |
− | [int]$num1 = Read-Host
| |
− | | |
− | Write-Host "Type second number"
| |
− | [int]$num2 = Read-Host
| |
− | | |
− | Write-Host
| |
− | "The result is:"
| |
− | $num1 + $num2
| |
− | </source>
| |
− | | |
− | '''Opgave 5:''' Lav et script hvor brugeren kan indtaste et navn på en process som så skal lukkes. (eksempelvis lommeregneren).
| |
− | | |
− | ''løsning:''
| |
− | <source lang="VB">
| |
− | Write-Host "Type the name of a process that you want to kill:"
| |
− | $killThis = Read-Host
| |
− | | |
− | $processes = Get-Process $killThis
| |
− | | |
− | Stop-Process $processes
| |
− | </source>
| |
− | | |
− | '''Opgave 6:''' Lav et script hvor brugeren indtaster sin højde og vægt, og scriptet udregner brugerens BMI. ((kg) / [Højde (m)]2)
| |
− | | |
− | ''Løsning:''
| |
− | <source lang="VB">
| |
− | Write-Host "What is your weight in kilo's?"
| |
− | [double]$kg = Read-Host
| |
− | | |
− | Write-Host "What is your height in meters?"
| |
− | [double]$height = Read-Host
| |
− | | |
− | Write-Host "Your BMi is:"
| |
− | | |
− | $kg / ($height * $height)
| |
− | </source>
| |
− | | |
− | ==Link til læsestof==
| |
− | | |
− | https://blog.udemy.com/powershell-tutorial/ - Læs fra "Using the Console" og frem.
| |
− | | |
− | | |
− | =Tirsdag=
| |
− | | |
− | ==Eksempler på kode==
| |
− | | |
− | '''Eksempel på if-statement:'''
| |
− | | |
− | <source lang="VB">
| |
− | Write-Host "Type your name:"
| |
− | | |
− | $userInput = Read-Host
| |
− | | |
− | if($userInput -eq "Mads")
| |
− | {
| |
− | Write-Host "Welcome superUser"
| |
− | }
| |
− | elseif($userInput -eq "Henrik")
| |
− | {
| |
− | Write-Host "Welcome guest."
| |
− | }
| |
− | elseif($userInput -eq "Anders")
| |
− | {
| |
− | Write-Host "Welcome guest."
| |
− | }
| |
− | else
| |
− | {
| |
− | Write-Host "Bad input or wrong userName."
| |
− | }
| |
− | </source>
| |
− | | |
− | '''Eksempel på if-statement med 2 tjek:'''
| |
− | | |
− | <source lang="VB">
| |
− | Write-Host "Please log in"
| |
− | $username = Read-Host
| |
− | $password = Read-Host
| |
− | | |
− | if(($username -eq "Mads") -and ($password -eq "Password123"))
| |
− | {
| |
− | Write-Host "You logged in as Mads"
| |
− | }
| |
− | </source>
| |
− | | |
− | '''Eksempel på et array'''
| |
− | <source lang="VB">
| |
− | $heroArray = "Batand", "Superand", "Spiderand"
| |
− | | |
− | $heroArray[0] #Udskriver den første and i arrayet (Batand)
| |
− | </source>
| |
− | | |
− | ==Opgaver==
| |
− | | |
− | '''1. Lav en simpel lommeregner, hvor brueren kan taste "1" for at lægge to tal sammen, taste "2" for at trække dem fra hinanden, 3 for at multiplicere, 4 for at dividere.'''
| |
− | | |
− | ''Løsning:''
| |
− | <source lang="VB">
| |
− | cls
| |
− | Write-Host "Type 1, to add two numbers."
| |
− | Write-Host "Type 2, to subtract two numbers."
| |
− | Write-Host "Type 3, to multiply two numbers."
| |
− | Write-Host "Type 4, to divide two numbers."
| |
− | | |
− | $userChoice = Read-Host
| |
− | | |
− | Write-Host "Type the first number"
| |
− | [int]$num1 = Read-Host
| |
− | | |
− | Write-Host "Type the second number"
| |
− | [int]$num2 = Read-Host
| |
− | Write-Host "The result was:"
| |
− | | |
− | if($userChoice -eq "1")
| |
− | {
| |
− | $num1 + $num2
| |
− | }
| |
− | elseif ($userChoice -eq "2")
| |
− | {
| |
− | $num1 - $num2
| |
− | }
| |
− | elseif ($userChoice -eq "3")
| |
− | {
| |
− | $num1 * $num2
| |
− | }
| |
− | elseif ($userChoice -eq "4")
| |
− | {
| |
− | $num1 / $num2
| |
− | }
| |
− | else
| |
− | {
| |
− | Write-Host "Didn't understand your input, please try again."
| |
− | }
| |
− | </source>
| |
− | | |
− | | |
− | '''2. Lav et script, hvor brugeren skal indtaste det år han/hun er født.
| |
− | Hvis brugeren er over 21, modtager han en tekstbesked på skærmen hvor der står: "Du har adgang til mercantecs hemmelige stripclub".
| |
− | Er brugeren ikke over 21, modtager han beskeden "Du er for ung til at blive medlem af mercantecs hemmeligheder"'''
| |
− | | |
− | ''Løsning:''
| |
− | <source lang="VB">
| |
− | cls
| |
− | | |
− | Write-Host "Intast dit fødselsår"
| |
− | $userBirthYear = Read-Host
| |
− | | |
− | [int]$currentYear = Get-Date -Format "yyyy"
| |
− | | |
− | if(($currentYear - 21) -gt $userBirthYear)
| |
− | {
| |
− | Write-Host "Velkommen ind"
| |
− | }
| |
− | else
| |
− | {
| |
− | Write-Host "Du er ikke gammel nok."
| |
− | }
| |
− | </source>
| |
− | | |
− | '''3. Lav et script, hvor brugeren kan taste "1" for at få vist computerens mest almindelige ip-konfigurationerne på skærmen.
| |
− | Brugeren kan også taste 2 i stedet, for at få vise alle ip-konfigurationerne på skærmen.
| |
− | Eller brugeren kan taste 3 for at få gemt en tekstfil på skrivebordet med alle ip-konfigurationerne.'''
| |
− | | |
− | | |
− | '''Opgave 4:'''
| |
− | | |
− | '''Færdiggør dette program, så en tilfældig værdi bliver genereret, og man kan vinde spillet:'''
| |
− | <source lang="VB">
| |
− | $x = 5
| |
− | $answer = 42
| |
− | while ($x -gt 0)
| |
− | {
| |
− | Write-Host "Gæt et tal mellem 0..100"
| |
− | [int]$guess = Read-Host
| |
− | if($guess -gt $answer)
| |
− | {
| |
− | Write-Host "The number was too large"
| |
− | }
| |
− | | |
− | $x--
| |
− | }
| |
− | </source>
| |
− | | |
− | ==Link til læsestof:==
| |
− | http://www.jonathanmedd.net/2015/01/how-to-make-use-of-functions-in-powershell.html - læs det hele
| |
− | | |
− | =Onsdag=
| |
− | | |
− | I dag skal vi løse opgaver, hvor vi skal bruge vores viden fra mandag og tirsdag.
| |
− | I er velkommende til at søge efter løsninger på nettet, eller spørge hinanden.
| |
− | | |
− | Vi skal mødes klokken 12 for at holde et status møde.
| |
− | | |
− | ==Opgaver==
| |
− | | |
− | ===Første sæt af opgaver===
| |
− | | |
− | '''Opgave 1:'''
| |
− | Tænd for computerens højtalere, og kør der efter disse tre kommandoer i powershell:
| |
− | <source lang="vb">
| |
− | [Reflection.Assembly]::LoadWithPartialName('System.Speech')
| |
− | $speaker = New-Object System.Speech.Synthesis.SpeechSynthesizer
| |
− | $speaker.Speak(" naa-naa naa-naa naa-naa naa-naa Batman!")
| |
− | </source>
| |
− | | |
− | Er det muligt at få oplæse klokkes læst op hvert minut? (eller hver time)
| |
− | | |
− | ''vejledning:''
| |
− | Du skal benytte et loop der udskriver tiden.
| |
− | Benyt eventuelt: start-sleep 60, for at pause scriptet i 60 sekunder.
| |
− | | |
− | | |
− | '''Opgave 2:'''
| |
− | Lav en funktion, der tjekker om lommeregneren er åbnet på jeres computer.
| |
− | Hvis ja, luk da lommeregneren.
| |
− | Hvis nej, start da lommeregneren.
| |
− | | |
− | ''vejledning:''
| |
− | Gem alle åbne lommeregner processer i en variabel.
| |
− | benyt eksempelvis en try-catch til at finde ud af om der var et resultat.
| |
− | | |
− | | |
− | '''Opgave 3:'''
| |
− | Lav et script der kopiere alle filerne i en mappe på jeres harddisk, til en backup-mappe i opretter på jeres skrivebord.
| |
− | | |
− | (i bestemmer selv hvilken mappe der skal kopieres fra, og hvilken mappe der skal kopieres til)
| |
Denne side er tom..