Powershell 2017

From Teknologisk videncenter
Revision as of 07:01, 10 May 2017 by Makn (talk | contribs) (Tirsdag)
Jump to: navigation, search

Generelt

Underviser: Mads Kristian Nielsen

E-mail: MaKn@mercantec.dk

Mandag

Tidsplan
Dag emne
Torsdag Intro til PowerShell
Fredag Introduktion til Scriptprogrammering
Mandag Automatisering af opgaver
Tirsdag praktisk projekt
Onsdag Multiple-choice test og evaluering


For at finde hjælp i powershell, skriv da:

Get-Help searchForThisWord


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 eller get-childItem

3. Hvordan skifter man den sti som brugeren befinder sig i?

resultat: CD C:\Users\MaKN\

4. Hvordan kopieres en fil?

resultat: Copy C:\Users\MakN\Desktop\IP.txt C:\backup\'

5. Hvordan slettes en fil?

resultat: remove-item C:\Users\MaKN\Desktop\IP.txt'

6. Hvordan opretter vi en textfil?

resultat: new-item C:\Backup\MinBackup.txt'

7. Hvordan tilføjer vi tekst til filen uden at slette indholdet?

resultat: Add-content C:\Backup\MinBackup.txt "Dette er mit nye tekst!"

resultat: "her er nyt tekst" >> C:\Backup\MinBackup.txt

8. Hvad er et alias?

resultat: Et alias referere til en kommando med et andet navn.

9. Hvordan oprettes et alias?

resultat: New-alias WhatIsMyIP ipconfig

10. Hvordan startes lommeregneren fra powershell

resultat: calc

11. Hvordan ses en liste over kørende processer på computeren?

resultat: Get-process

12. Hvordan lukkes lommeregneren fra powershell?

resultat: stop-process [ID på processen]

resultat: stop-process -name calculator

13. Hvordan tilgås registreringsdatabasen i powershell? (hint hkcu)

resultat: get-childitem -path registry::hkcu

resultat: CD hkcu:\

14. Opret en ny nøgle i registreringsdatabasen under SOFTWARE med navnet test

resultat: new-itemproperty -path hkcu:\Software\ -name Test

15. Slet nu test fra SOFTWARE

resultat: Remove-item -path hkcu:\Software\test

Scripting

For at oprette en variabel skrives:

$minVariabel = "hej"

For at skrive til brugeren:

Write-host "Hej bruger."

For at indlæse indtastet tekst fra brugeren skrives:

$brugerinput = read-Host


Scripting opgaver

Opgave 1: Lav et script hvor brugeren indtaster et stykke tekst, som så bliver gemt på skrivebordet som UserInput.txt

Opgave 2: Lav et script der indlæser hvad brugeren skrev i tekstfilen i en variabel.

opgave 3: Lav et script der kan pinge en indtastet IP. Scriptet skal så gemme resultatet i en textfil på skrivebordet.

Opgave 4: Lav et script hvor brugeren indtaster 2 tal, som så bliver lagt sammen (som en lommeregner)

Opgave 5: Lav et script hvor brugeren kan indtaste et navn på en process som så skal lukkes. (eksempelvis lommeregneren).

Opgave 6: Lav et script hvor brugeren indtaster sin højde og vægt, og scriptet udregner brugerens BMI. ((kg) / [Højde (m)]2)

Link til læsestof

https://blog.udemy.com/powershell-tutorial/ - Læs fra "Using the Console" og frem.


Ekstraopgave:

Prøv at remote til en ekstern windows server. (Benyt jeres egen bærbar til at remote til jeres server.)

Følg eventuelt denne guide: https://www.howtogeek.com/117192/how-to-run-powershell-commands-on-remote-computers/

Kan du skrive data til din MS SQL database?

Fredag

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.

Write-Host "Tast 1 for at lægge 2 tal sammen.."
Write-Host "Tast 2 for at trække 2 tal fra hinanden.."
Write-Host "Tast 3 for at gange 2 tal med hinanden.."
Write-Host "Tast 4 for at dividere 2 tal med hinanden.."

[int]$userInput = Read-Host

Write-Host "Indtast tal nummer 1"
[int]$tal1 = Read-Host

Write-Host "Indtast tal nummer 2"
[int]$tal2 = Read-Host

if ($userInput -eq 1)
{
    Write-Host "Resultatet var:"
    $tal1 + $tal2
}

if ($userInput -eq 2)
{
    Write-Host "Resultatet var:"
    $tal1 - $tal2
}

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"

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:

$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--
}

Opgave 5: Lav et program der implementere funktioner med og uden argumenter. Hvordan virker de?

Link til læsestof:

http://www.jonathanmedd.net/2015/01/how-to-make-use-of-functions-in-powershell.html - læs det hele

Link til videomateriale

Hvis du mangler et videokursus i Powershell, kan du få et kursus her:

https://drive.google.com/file/d/0B5oDizcmFQ1YNWFSS19QWm80VUU/view?usp=sharing

Du bestemmer selv hvilke videoer du vil se, men jeg anbefaler at du starter ved video 401. Når du åbner linket, tryk da på pilen øverst i højre hjørne.


Mandag

Løs så mange af de følgende opgaver som du kan. I må godt arbejde i grupper, søge efter viden på internettet eller spørge hinanden om hjælp. Føler du at du har svært ved at lære materialet, er det naturligvis også helt i orden at du ser følgende kursus omkring Powershell Link: https://drive.google.com/file/d/0B5oDizcmFQ1YNWFSS19QWm80VUU/view?usp=sharing

Du bestemmer selv hvilke videoer du vil se, men jeg anbefaler at du starter ved video 401. Når du åbner linket, tryk da på pilen øverst i højre hjørne.

Opgaver

Opgave 1: Tænd for computerens højtalere, og kør der efter disse tre kommandoer i powershell:

[Reflection.Assembly]::LoadWithPartialName('System.Speech') 
$speaker = New-Object System.Speech.Synthesis.SpeechSynthesizer 
$speaker.Speak(" naa-naa naa-naa naa-naa naa-naa Batman!")

Er det muligt at få oplæse klokkes læst op hvert minut? (eller hver time) Hvad kunne ellers være interessant at få læst op? Prøv at få oplæseren til at sige noget nyttigt igennem jeres script.

vejledning: Du skal benytte et loop der udskriver tiden. Et loop får scriptet til at gentage en blok af kode. Eksempeltvis hvert 60 sekundt. Du kan læse om loops her: http://www.tomsitpro.com/articles/powershell-for-loop,2-845.html Benyt eventuelt: start-sleep 60, for at pause scriptet i 60 sekunder.


Opgave 2: Lav et script, 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. Du kan læse om try-catch sætningen her: https://www.vexasoft.com/blogs/powershell/7255220-powershell-tutorial-try-catch-finally-and-error-handling-in-powershell


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)

'Opgave 4:' Lav et script, der tjekker om der er en forbindelse til en indtastet ip addresse. Scriptet skal tjekke om der er forbindelse til ip-adressen hvert 30 sekund. Hvis der ikke er forbindelse, skal der skrives en fejlbesked på skærmen.


Opgave 5: Kombiner alle opgaverne i ét script, der skal forestille at kører når brugeren ikke er ved maskinen.


Opgave 6: Hvordan ser man de services der kører på maskinen? (ikke processer, men tjenester) Lav et script der tjekker om en service er stoppet. Hvis ja, genstart da servicen. (Du bestemmer selv hvilken tjenste der startes. Start eller stop eventuelt Windows Update tjenesten.)


Opgave 7: Lav et script, hvor brugeren har mulighed for at indtaste et tidspunkt, hvor computeren skal genstarte. Brugeren skal også have mulighed for at specificere mere end ét tidspunkt på dagen, hvor computeren skal genstartes (eksempelvis klokken 12:00, 18:00, 24:00) Computeren behøver ikke at huske tidspunkterne efter opstart.


Opgave 8: Lav et script der tjekker hjemmesiden "er det fredag", og læser indeholdet på siden, hvis der står Nej, skrives "Nej" i konsollen, er svaret Ja skrives der "ja" i konsollen. Hint: Du skal tjekke sidens HTML. Brug eventuelt https://superwidgets.wordpress.com/tag/read-html-via-powershell-powershell/

Opgave 9: Prøv at lave et script der kan 'Remote' fra én computer til en anden igennem Powershell. Jeg anbefaler at i bruger den server i opsatte tidligere, og prøver at remote fra jeres 'rod-server' til én af jeres virtuelle maskiner.

Opgave 10: Lav et script der opretter en tabel i jeres MS SQL database. Indsæt derefter nogle data i den nye tabel. (Du bestemmer selv hvilke data du vil oprette/indsætte). Benyt gerne google til at finde kodestumper som du kan bruge.

Opgave 11: Er du færdig? Find selv nogle emner inden for Powershell som du gerne vil vide mere om, og studer emnerne grundigt.


Tirsdag

Eksamensopgaven ligger her: https://drive.google.com/file/d/0B5oDizcmFQ1YQmhVRnZQdFM0bFU/view?usp=sharing

Tekstfilen til opgave 5 ligger her: https://drive.google.com/file/d/0B5oDizcmFQ1YcmRVaVdONkh1alU/view?usp=sharing

Er man færdig før tid, kan man forberede sig il multiple-choice testen i morgen.


Onsdag

Det første vi skal i dag er at gennemgå jeres opgaver mundtligt. Derefter kommer "Dræber-testen" i form af en multipleChoice test hvor i får jeres "Final score" med det samme.

Hvis man tager gennemsnittet af begge jeres resultater (altså den mundtlige evaluering og den skriftelige evaluering fra jeres multiple choice) bliver denne jeres endelige karakter for faget.

Good luck RIP.