Ping Netzwerkverbindung ├╝berwachen


Einfaches Powershellskript um eine bestimmte IP zu ├╝berwachen: bei Verbindungsaufbau oder Verbindungsabbruch wird ein Information in Form eines ToolTip angezeigt. Im Powershellfenster wird die Verbindung protokolliert.

das fertige Skript

Nach der Eingabe der IP 

werden Informationen zum Verbindungsstatus als Tooltip angezeigt:

Im Skriptfenster werden die Änderungen des Verbindungsstatus protokolliert:

Das Skript kann nat├╝rlich auch mehrfach f├╝r verschiedene Adressen gestartet werden, optional auch per Command Line Parameter aus einer .cmd Datei:

start /min %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe "C:\Portable\skripts\ping.ps1" -ip 8.8.8.8

start /min %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe "C:\Portable\skripts\ping.ps1" -ip 8.8.4.4

hier der Quellcode:

param ([string] $ip = 'none')
 
if ($ip -ne 'none'){
    $global:pingip=$ip}else{$global:pingip= Read-Host 'welche IP soll ├╝berwacht werden?'
}

Function BalloonTooltip {
    [system.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') | Out-Null
    $balloon = New-Object System.Windows.Forms.NotifyIcon
    $path = Get-Process -id $pid | Select-Object -ExpandProperty Path
    $icon = [System.Drawing.Icon]::ExtractAssociatedIcon($path)
    $balloon.Icon = $icon
    $balloon.BalloonTipIcon = $global:BallonTitle
    $balloon.BalloonTipText = $global:BallonText + $global:pingip
    $balloon.BalloonTipTitle = $global:BallonTitle
    $balloon.Visible = $true
    $balloon.ShowBalloonTip(10000)
}
 
$status='no'
while($true){
    if(test-connection $global:pingip -count 2 -q) {
        if ($status -ne 'connected'){
            $global:BallonText = 'Connection established:'
            $global:BallonTitle = 'Info'
            $status='connected'
            Write-Output "$(Get-Date) : $status $global:pingip"
            BalloonTooltip
        }
    }else {
        if ($status -ne 'lost') {
            $global:BallonText = 'no Connection to:'
            $global:BallonTitle = 'Warning'
            $status='lost'
            Write-Output "$(Get-Date) : $status $global:pingip"
            BalloonTooltip
        }
    }
}

die Funktion BalloonTooltip stammt von dieser Seite: http://www.zerrouki.com/balloontooltip/

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE f├╝r deine Bewertung!

Aktualisiert: 04.07.2016 von Bernhard ­čöö


Top-Artikel in diesem Bereich


AD: Active Directory Daten auslesen
Mit Windows PowerShell Active Directory Objekte auslesen.

PowerShell: Dateiattribute: Datum ├Ąndern - ganz ohne Tools
Als Alternative zu speziellen Programmen kann auch mit PowerShell das Datum einer Datei oder eines Ordners ge├Ąndert werden.┬á

PowerShell Email versenden: Send-MailMessage
In PowerShell kann ├╝ber einen einfachen Befehl eine Email versendet werden: "Send-MailMessage". Mit dem Befehl kann das Versenden von Mails au├čerhalb der Applikation rein mit PowerShell getestet werden:

Fragen / Kommentare


(sortiert nach Bewertung / Datum) [alle Kommentare(neueste zuerst)]

ÔťŹanonym
22.06.2020 09:13
Cool w├Ąre noch eine Protokolldatei.

Gru├č ust

ÔťŹanonym
25.09.2019 07:59
User: R├╝diger 
Hallo. Tolles Script.

Ist das die Standardausgabe, wenn die Verbindung verloren geht?

test-connection : Generic failure 
At line:22 char:8
+     if(test-connection $global:pingip -count 2 -q) {
+        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Test-Connection], ManagementException
    + FullyQualifiedErrorId : TestConnectionException,Microsoft.PowerShell.Commands.TestConnectionCommand
 

ÔťŹanonym
31.05.2018 10:22
User: ms 
Gibt es eine M├Âglichkeit das f├╝r mehrere IP's gleichzeitig auszuf├╝hren?

ÔťŹanonym
08.01.2018 22:49
User: michael 
danke f├╝r das skript