(0)
Artikel
bewerten
(100% positiv)
(4)

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/

letzte Änderung dieses Artikels: 04.07.2016 17:08




Kommentare