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!


veröffentlicht am 03.10.2015 von Bernhard
geändert am 04.07.2016 von Bernhard


Top-Artikel in diesem Bereich

Preview AD: Active Directory Daten auslesen

AD: Active Directory Daten auslesen

geändert: 11.09.2020 von Bernhard (Erstveröffentlichung: 29.04.2020)

Mit Windows PowerShell Active Directory Objekte auslesen. ... weiterlesen

Preview Mit PowerShell Filesystem-Rechte setzen: ACL

Mit PowerShell Filesystem-Rechte setzen: ACL

erstellt: 26.08.2020 von Bernhard

Um bei einem bestehenden Ordner einen User mit Schreib-Berechtigungen hinzuzufügen, kann folgendes Script verwendet werden: ... weiterlesen

Preview PowerShell: Dateiattribute: Datum ändern - ganz ohne Tools

PowerShell: Dateiattribute: Datum ändern - ganz ohne Tools

erstellt: 28.06.2020 von Bernhard

Als Alternative zu speziellen Programmen kann auch mit PowerShell das Datum einer Datei oder eines Ordners geändert werden.  ... weiterlesen


Fragen / Kommentare


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

✍anonym
erstellt am 22.06.2020 09:06
Cool wäre noch eine Protokolldatei.

Gruß ust

✍anonym
erstellt am 25.09.2019 07:09
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
erstellt am 31.05.2018 10:05
User: ms 
Gibt es eine Möglichkeit das für mehrere IP's gleichzeitig auszuführen?

✍anonym
erstellt am 08.01.2018 22:01
User: michael 
danke für das skript

Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Außerdem geben wir Informationen zu Ihrer Nutzung unserer Website an unsere Partner für soziale Medien, Werbung und Analysen weiter. Details anzeigen.