Skip to content
ICT_Kennisbank_2025

Windows Server

1
  • Beheer Topdesk

Cisco

4
  • Minecraft
  • Voorbeeld Netwerktekening
  • Uitwerking Oefenexamen Correct v Leeg
  • Commando Cheat Sheet S5

Powershell

3
  • PWS Oefenexamen – voor + na
  • Email sturen PWS
  • Benodigde kennis Powershell

Python

3
  • UserProgramma.py
  • Dobbelsteen Opdracht
  • Eindopdracht Python Atletiek Voorbeeld

SQL

2
  • Handboek SQL
  • Werkboek Databases V3.2 2021

Flowchart

2
  • Stroomschema
  • Flowchart voorbeelden

SEC

1
  • Oefen SEC
View Categories
  • Home
  • Docs
  • SQL/Python/PWS
  • Powershell
  • PWS Oefenexamen – voor + na

PWS Oefenexamen – voor + na

7 min read

voor

<#

  Scriptnaam:  MonitorFreeMemory.ps1

  Functie   :  Dit script monitort het vrije geheugen van de machine waarop het script uitgevoerd wordt.

               De resultaten worden weggeschreven naar een resultatenfile als uit te voeren SQL query.

  Auteur    :  Olaf Ritman

  Versie    :  1.0

  Datum     :  12 oktober 2022

  Verwachte argumenten: aantal seconden (numeriek) en naam van de output file (tekst)

  De opdrachten staan tussen commentaar blokken in het script, voorafgegaan door “OPDRACHT:”

#>

Clear-Host

<#  OPDRACHT:

    Zorg dat hieronder default waarden voor de variabelen $seconds en $ResultFile worden ingesteld

#>

$MachineName = hostname

$seconds = $null

$ResultFile = $null

If ($args[0] -Is [int]) {$seconds = $args[0]}

<#  OPDRACHT:

    Zorg dat ook gecontroleerd wordt of als tweede argument de naam van een resultfile wordt ingevoerd.

    Zo ja, dan moet de default waarde van $ResultFile daarmee vervangen worden

#>

If (Test-Path -LiteralPath $ResultFile) {

  Write-Host -ForegroundColor Red “WARNING: ” -NoNewline

  Write-Host “$ResultFile already exists. What do you want to do?”

  Write-Host “[1] Add the results to this file”

  Write-Host “[2] Delete it and start with an empty one”

  Write-Host “[9] Quit”

  $answer = Read-Host -Prompt “Please make your choice”

<#  OPDRACHT:

    Zorg dat de gebruiker net zolang gevraagd wordt om 1 van bovenstaande opties (1,2,9) in te voeren

    tot $answer 1 van deze waarden heeft. Je hebt hier maximaal 3 regels voor nodig.

#>

  If ($answer -Eq ‘2’) {

    Set-Content -path $ResultFile -value “DELETE FROM MemoryUsage WHERE ID > 0;”

    Add-Content -path $ResultFile -value “INSERT INTO MemoryUsage (Hostname,FreeMemory,Date) VALUES”

  }

<#  OPDRACHT:

    Zorg ervoor dat het programma stopt als het antwoord 9 is. Dit zou in 1 regel kunnen.

#>

}

Else {

  Set-Content -path $ResultFile -value “DELETE FROM MemoryUsage WHERE ID > 0;”

  Add-Content -path $ResultFile -value “INSERT INTO MemoryUsage (Hostname,FreeMemory,Date) VALUES”

}

$aantalSeconden = New-timespan -seconds $seconds

$startAt = Get-Date

$stopAt = (Get-Date) + $aantalSeconden

clear

$LineOut = “Checking free virtual memory on $MachineName for $seconds seconds”

Write-Host $LineOut

<#  OPDRACHT:

    Leg in 1 commentaarblok uit wat de volgende 4 regels doen

#>

$LengthLineOut = $LineOut.Length

For($i=1;$i -le $LengthLineOut;$i++){

  Write-Host -NoNewline “=”

}

Write-Host “`r”

<#  OPDRACHT

    Zorg ervoor dat de volgende regels net zolang lopen tot de $stopAt voorbij is.

#>

  $FreeMemory = Get-CIMInstance Win32_OperatingSystem | Select FreePhysicalMemory

  ForEach ($entry in $FreeMemory){

    $TimeStamp = Get-Date -Format “yyyyMMddHHmmss”

    $MemValue = $entry.FreePhysicalMemory

    $NewLine = “(‘$MachineName’,$MemValue,$TimeStamp),”

    Add-Content -Path $ResultFile -Value $NewLine

    $TimeStamp = Get-Date

    Write-Host “Free memory at ${TimeStamp}:” $entry.FreePhysicalMemory

  }

  <#  OPDRACHT

      Zorg er voor dat de gebruiker iets bewegends op het scherm

      te zien krijgt voordat de volgende check plaatsvindt.

  #>

}

clear

Write-Host -NoNewline “Monitoring process is done. Results can be found in “

<#  OPDRACHT

    Voeg aan de volgende regel iets toe waardoor de kleur van het lettertype rood wordt

#>

Write-Host $pwd\$ResultFile

$answer = Read-Host -Prompt “`nDo you want to open it (y/n)?”;

While (($answer -ne “y”) -And ($answer -ne “n”)) {

  $answer = Read-Host -Prompt “Please make your choice (y/n)”;

}

<#  OPDRACHT

    Vervang hieronder de puntjes (…) door een check: als het antwoord ‘y’ is moet de file geopend worden

#>

If (…) {Invoke-Item $ResultFile}

Else {Write-Host “Dan niet joh…”}

Write-Host “================================`nScript finished at”, (Get-Date), “`n” ;

Nieuw

Na (Juiste antwoorden)

<#

  Scriptnaam:  MonitorFreeMemory.ps1

  Functie   :  Dit script monitort het vrije geheugen van de machine waarop het script uitgevoerd wordt.

               De resultaten worden weggeschreven naar een resultatenfile als uit te voeren SQL query.

  Auteur    :  Olaf Ritman

  Versie    :  1.0

  Datum     :  12 oktober 2022

  Verwachte argumenten: aantal seconden (numeriek) en naam van de output file (tekst)

  De opdrachten staan tussen commentaar blokken in het script, voorafgegaan door “OPDRACHT:”

#>

#clear

Clear-Host

<#  OPDRACHT:

    Zorg dat hieronder default waarden voor de variabelen $seconds en $ResultFile worden ingesteld

#>

$seconds = 60

$ResultFile = ‘C:\Temp\ExportResultFile.txt’

$MachineName = hostname

If ($args[0] -Is [int]) {$seconds = $args[0]}

If ($args[1] -ne $null) {$ResultFile = $args[1]}

<#  OPDRACHT:

    Zorg dat ook gecontroleerd wordt of als tweede argument de naam van een resultfile wordt ingevoerd.

    Zo ja, dan moet de default waarde van $ResultFile daarmee vervangen worden

#>

If (-not ([string]::IsNullOrEmpty($args[1]))){$ResultFile = $args[1]}

If (Test-Path -LiteralPath $ResultFile) {

  Write-Host -ForegroundColor Red “WARNING: ” -NoNewline

  Write-Host “$ResultFile already exists. What do you want to do?”

  Write-Host “[1] Add the results to this file”

  Write-Host “[2] Delete it and start with an empty one”

  Write-Host “[9] Quit”

  do{

  $answer = Read-Host -Prompt “Please make your choice”

  }

  while($answer -notin (1,2,9))

}

<#  OPDRACHT:

    Zorg dat de gebruiker net zolang gevraagd wordt om 1 van bovenstaande opties (1,2,9) in te voeren

    tot $answer 1 van deze waarden heeft. Je hebt hier maximaal 3 regels voor nodig.

#>

  If ($answer -Eq ‘2’) {

    Set-Content -path $ResultFile -value “DELETE FROM MemoryUsage WHERE ID > 0;”

    Add-Content -path $ResultFile -value “INSERT INTO MemoryUsage (Hostname,FreeMemory,Date) VALUES”

  }

<#  OPDRACHT:

    Zorg ervoor dat het programma stopt als het antwoord 9 is. Dit zou in 1 regel kunnen.

#>

    ElseIf ($answer -eq ‘9’){ exit }

    Else {

      Add-Content -path $ResultFile -value “`r”

      Add-Content -path $ResultFile -value “DELETE FROM MemoryUsage WHERE ID > 0;”

      Add-Content -path $ResultFile -value “INSERT INTO MemoryUsage (Hostname,FreeMemory,Date) VALUES”

    }

$aantalSeconden = New-timespan -seconds $seconds

$startAt = Get-Date

$stopAt = (Get-Date) + $aantalSeconden

#clear

Clear-Host

$LineOut = “Checking free virtual memory on $MachineName for $seconds seconds”

Write-Host $LineOut

<#  OPDRACHT:

    Leg in 1 commentaarblok uit wat de volgende 4 regels doen

#>

$LengthLineOut = $LineOut.Length

For($i=1;$i -le $LengthLineOut;$i++){

  Write-Host -NoNewline “=”

}

Write-Host “`r”

<#

Voor ieder character in de regel $LineOut wordt een = op het scherm gezet

#>

<#  OPDRACHT

    Zorg ervoor dat de volgende regels net zolang lopen tot de $stopAt voorbij is.

#>

while((Get-Date) -lt $stopAt){

  $FreeMemory = Get-CIMInstance Win32_OperatingSystem | Select FreePhysicalMemory

  ForEach ($entry in $FreeMemory){

    $TimeStamp = Get-Date -Format “yyyyMMddHHmmss”

    $MemValue = $entry.FreePhysicalMemory

    $NewLine = “(‘$MachineName’,$MemValue,$TimeStamp),”

    Add-Content -Path $ResultFile -Value $NewLine

    $TimeStamp = Get-Date

    Write-Host “Free memory at ${TimeStamp}:” $entry.FreePhysicalMemory

  }

  <#  OPDRACHT

      Zorg er voor dat de gebruiker iets bewegends op het scherm

      te zien krijgt voordat de volgende check plaatsvindt.

  #>

  For($i=1;$i -le $seconds;$i++){

    Write-Host -NoNewline “.”

    Start-Sleep -Seconds 1

  }

  Write-Host “`r”

}

clear

Write-Host -NoNewline “Monitoring process is done. Results can be found in “

<#  OPDRACHT

    Voeg aan de volgende regel iets toe waardoor de kleur van het lettertype rood wordt

#>

Write-Host $pwd\$ResultFile -ForegroundColor Red

$answer = Read-Host -Prompt “`nDo you want to open it (y/n)?”;

While (($answer -ne “y”) -And ($answer -ne “n”)) {

  $answer = Read-Host -Prompt “Please make your choice (y/n)”;

}

<#  OPDRACHT

    Vervang hieronder de puntjes (…) door een check: als het antwoord ‘y’ is moet de file geopend worden

#>

If ($answer -eq “y”) {Invoke-Item $ResultFile}

Else {Write-Host “Dan niet joh…”}

Write-Host “================================`nScript finished at”, (Get-Date), “`n” ;

Updated on January 9, 2025

What are your Feelings

  • Happy
  • Normal
  • Sad
Share This Article :
  • Facebook
  • X
  • LinkedIn
  • Pinterest
Email sturen PWS

All rights reserved