Microsoft Windows war als Server-OS schon immer eher ungeeignet - zumal mal (wenn überhaupt) dann auch eine Serverversion nutzen sollte - in den Desktop-Versionen von Winblows gibt es zuviele unberechenbare Faktoren und Angriffspunkte.
Ich würde -insbesondere in Hinsicht auf die Anforderungen- unbedingt Linux empfehlen, dort ist die Aufgabe auch nativ bzw. deutlich einfacher umsetzbar - die PowerShell erfordert mitunter unfassende Kenntnisse über VB, die PS selbst und sogar COM (wenn es komplexer werden soll) ... nun .. ein derartiges S***** wäre wohl mit VB auch recht leicht, hat man erstmal die Kenntnisse dazu.
Unter Unix kann man ganz einfach ein S***** über die Crontab starten :
Code:
*/5 * * * * su -c /s***** || halt
/s*****:
Code:
#!/bin/bash
host=127.0.0.1
port="22"
wc=`which wc`
nmap=`which nmap`
ping=`which ping`
cut=`which cut`
grep=`which grep`
tr=`which tr`
keyword="open"
echo=`which echo`
success="Client online"
failure="Client offline"
_portscan()
{
$nmap -PN -p$port -R $host | $grep $port | $cut -d ' ' -f2 | $grep $keyword > /dev/null && { echo $success; return 0; } || { echo failure; return 1; }
}
_ping()
{
$ping $host -i 5 -qc 3 -W 15 && return 0 || return 1
}
for (( i = 1 ; i <= 20; i++ ))
do
_ping && _portscan && exit 0
done
exit 1
--> das S***** prüft zusätzlich nen TCP-Port den du angibst ... kann man weglassen, ausserdem müsste man noch das Iterieren der IP-Liste einbauen aber das is ja kein Problem, die Schleife hat man ja bereits