Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Hij zal vragen waar je naartoe wil pingen, hoe lang en waar de log moet komen. Maar enter klikken en hij zal dan doorlopen met de standaard waarden, of u kunt zelf iets invullen.

U kunt op de volgende locatie het resultaat vinden van de test: C:\log.txt en c:\log.csv

Code Block
languagepowershell
#Boaz Brak; Accensys Business Solutions
#Laatste Update: 14-1-2021
#V1.2

#WAT DOET DIT SCRIPT:
#Dit script pingt elke seconde naar een site en logt dit naar een textbestandje en naar een csv bestandje

$TestDoel = Read-Host -Prompt "Waar gaan we naar pingen? (Laat leeg voor google.com)"
$tijdsduur = Read-host -Prompt "Voor hoe lang willen we pingen in uren? (Laat leeg voor 8 uur)"
$Log = Read-Host -Prompt "Waar mag de logmap komen? (Laat leeg voor C:\)"

switch ($null) {
    $Testdoel       {$TestDoel = "google.com"}
    $tijdsduur      {$tijdsduur = 8}
    $log            {$Log = "C:\"}
}

$logmap = "$log\log"
$eindtijd = (get-date).AddHours($tijdsduur)
$starttijd = get-date -Format "yyyy-MM-dd hh-mm-ss"

function PingP($TestDoel,$tijdsduur,$GeenHeader) {
#Met Dit gedeelte houden we een normaal powershell object, dit is makkelijk te converteren naar CSV
    Test-NetConnection $testdoel | select-object `
        @{name="Sucess";    expression={$_.pingsucceeded}},
        @{name="Latency";   expression={$_.PingReplyDetails.roundtriptime}},
        @{name="Tijd";      expression={(get-date -Format "hh:mm:ss")}} |
    Tee-Object -Variable VarVoorCSV |
#Dit gedeelte formatteren we met formattable voor text, met de tabellen aan de linker gealligned, anders lopen ze scheef
    Format-Table -HideTableHeaders:$GeenHeader `
        @{name="Sucess";    expression={$_.Sucess};     align='left'},
        @{name="Latency";   expression={$_.Latency};    align='left'},
        @{name="Tijd";      expression={$_.Tijd};       align='left'} |
    out-string | New-Variable VarVoorText
    $CSV = $VarVoorCSV | ConvertTo-Csv -NoTypeInformation
    $Text = $VarVoorText.Trim()
#door regel een te selecteren ipv 0 skippen we de headers
    if ($geenheader) {
        $CSV = $CSV[1]
    }
    return $CSV, $Text
}

#Als de logmap nog niet bestaat dan maken we hem
if ((Test-Path $logmap) -eq $false) {
    new-item -ItemType Directory $logmap
}

$firstrun = $true

while ((get-date) -le $eindtijd) {
#Als dit de eerste run is dan willen we wel headers
    if ($firstrun) {
        $CSV, $Text = PingP $TestDoel $tijdsduur -GeenHeader $false
        $firstrun = $false
    }
    else {
        $CSV, $Text = PingP $TestDoel $tijdsduur -GeenHeader $true
    }
    $Text | out-file "$logmap\$starttijd.txt" -Append
    $CSV | Out-File "$logmap\$starttijd.csv" -Append
    Start-Sleep -Seconds 1
}

...