PowerShell

Leerdoelen

  • Leren werken met variabelen
  • Leren werken met cmd-lets
  • Leren wat objecten zijn

Wat is PowerShell?

  • PowerShel is een command interpreter
    • Een CommandLine Interface (CLI) voor Windows
    • Je geeft commando's aan de computer
  • Het is de opvolger van cmd
    • cmd commando's kunnen gebruikt worden

PowerShell Functionaliteit

  • Commando's heten cmdlets
  • Draait als gebruiker die de shell heeft opgestart
    • Gebruik Run as... om op te starten als Administrator
  • je kan er ook in programmeren (scripten)

PowerShell Opstarten

  • Zoek op Windows PowerShell in de zoekbalk
  • Start PowerShell op of kies eerst Run as...
  • Met
    Exit
    verlaat je PowerShell
  • Zorg dat je in je home-directory staat:
    cd $home

Werken in PowerShell

  • Variabelen
  • cmd-lets
  • commando's (behandelen we niet)
  • Objecten

Variabelen

  • Een mogelijkheid om data op te slaan...
  • ... en de informatie weer op te vragen

Eigen variabelen

  • $msg="Hello World!"
    $msg
    Hello World!
  • $msg="Hello World!" is een assignment
    • Een variabele begint met een $
    • Een variabele heeft een naam: msg
    • Een variabele heeft een waarde: Hello World!
    • Quotes vertellen dat het een string is
  • Een regel met alleen een variabele wordt geprint

PowerShell variabelen

  • De versie van PowerShell
    $PSVersionTable
  • $pwd: Geeft de huidige werkdirectory (Path) weer.
  • $home: De pad naar de gebruikersmap (User Profile)

Fouten zoeken

  • $?: Een Booleaanse variabele die aangeeft of de vorige cmdlet succesvol was
    verb-noun
    $?
  • $error: Een array (lijst) met de meest recente fouten die zijn opgetreden.
  • $error
    $?

Cmd-let syntax

cmd-let <argument(s)> [-option(s)]
  • spreek uit: command-let
  • Bestaat uit: werkwoord - zelfstandignaamwoord
    Get-Help
  • cmd-let kan argument(en) krijgen
  • Opties beginnen met een -
    • Opties kunnen argument(en) hebben

    De pijplijn... (pipeline)

  • Verbindt 2 commando's:
    Get-Help | more
  • Geeft help weer per pagina
  • Output van 1 is input van 2

    Online help

  • Vraag het de TechNet Library
    Get-Help <cmd-let> -online
  • <cmd-let> is argument
  • -online is optie
get-help get-help -online

    Optie VS argument

  • Optie: is een wijziging van de functie
    • In dit geval: online ipv lokaal
  • Argument: vertelt wat, waar of waarop de actie uitgevoer moet worden:
    get-help get-help -online
  • Een cmd-let voert een functie uit
  • De manier waarop de cmd-let zijn functie uitvoert kan gestuurd worden door optie(s)
  • Waarop de cmd-let zijn functie uitvoert wordt bepaald door argumenten
get-help get-help -online

Objecten

  • PowerShell is Object Oriented shell
  • Alles is een Object en heeft
    • Properties: Data; een bepaalde waarde
    • Methods: Acties; extra functionaleit

Properties

  • Eigenschappen, data, waarden
  • ... is een soort variabele met een bepaalde waarde

Get properties

$msg | Get-Member -MemberType Property
String object

  TypeName: System.String

Name   MemberType Definition
----   ---------- ----------
Length Property   int Length {get;}
$msg.Length
12

Methods

  • Acties, functies
  • Acties die het object kan uitvoeren

Get methods

$msg | Get-Member -MemberType Method
Geeft een lange lijst met methods..., we nemen er 1:
$msg.GetType()
IsPublic IsSerial Name     BaseType
-------- -------- ----     --------
True     True     String   System.Object

Samenvatting

  • Variabelen: bevatten data
  • cmd-lets: voeren acties (functies) uit
  • objecten: bevatten data en functies