tingel
Goto Top

Netzwerkstatus

Hallo,

woran erkennt das Windows-OS, dass kein Internetzugriff möglich ist?
Sprich LAN an sich geht, aber die Internetverbindung unterbrochen ist.

Ich möchte, dass wenn die Internetkonnektivität verloren geht, ein bestimmtes Programm ausgeführt wird.

Content-ID: 275973

Url: https://administrator.de/contentid/275973

Ausgedruckt am: 22.11.2024 um 21:11 Uhr

114757
114757 29.06.2015 aktualisiert um 13:21:08 Uhr
Goto Top
z.B. mit Powershell
if (!(Test-Connection "8.8.8.8" -Count 1 -Quiet)){  
    write-host "Internet nicht verbunden!"  
    # hier Programm starten
} else {
   write-host "Internet ist erreichbar"  
}
oder Batch
wmic PATH Win32_PingStatus where Address='8.8.8.8' get StatusCode /format:list |find "StatusCode=0" >nul && echo Internet OK || echo Internet nicht OK  
In den Taskplaner gepackt, feddich.

Gruß jodel32
kaiand1
kaiand1 29.06.2015 um 12:52:30 Uhr
Goto Top
Nun zum einen kann es die DNS Einstellung Prüfen welche vom DHCP kommen bzw die Eingestellt wurden.
Zudem kann es zuhause "Anrufen" woher es weiß Internet geht oder auch nicht..
Dies kannst du zb mit ner Batch machen und ein Host Pingen und wenn dies Fehlschlägt dein Tool starten.
Lochkartenstanzer
Lochkartenstanzer 29.06.2015 um 12:54:45 Uhr
Goto Top
Zitat von @tingel:

woran erkennt das Windows-OS, dass kein Internetzugriff möglich ist?

Vermutlich daran, daß Zugriffe auf bestimmte MS-Systeme nicht mehr gehen.

Sprich LAN an sich geht, aber die Internetverbindung unterbrochen ist.

Indem z.B. kine Namensauflösung, kein Ping, kein trace, etc. mehr geht.

Ich möchte, dass wenn die Internetkonnektivität verloren geht, ein bestimmtes Programm ausgeführt wird.

Dann "guck" einfach, ob Dir wichtige Systeme im Internet erreichbar sind oder nicht. Wie das geht hat ja jodel beispielhaft mit dem google-Nameserver hingeschrieben.

lks
tingel
tingel 29.06.2015 um 13:19:26 Uhr
Goto Top
Danke für eure Antworten.
Ja, das mit dem Ping ist logisch, aber ich wollt vermeiden, dass ich zusätzlich immer wieder selber pings rausblase.

Hätt gedacht, dass es dann ne Ereignis-ID gibt, auf welche ich überprüfen kann.
114757
114757 29.06.2015 aktualisiert um 13:30:54 Uhr
Goto Top
Ab Windows 8 gibts da auch ein API mit dem du den Status der Verbindung abfragen kannst.
http://stackoverflow.com/questions/13625304/check-internet-connection-a ...

Die entsprechenden XAML Events:
https://msdn.microsoft.com/en-us/library/windows/apps/xaml/jj835820.aspx
madebo
madebo 29.06.2015 um 14:33:52 Uhr
Goto Top
woran erkennt das Windows-OS, dass kein Internetzugriff möglich ist?
Das funktioniert mit einer HTTP-Anfrage an http://www.msftncsi.com/ncsi.txt und der versuchten Namensauflösung von dns.msftncsi.com. Wenn beides erfolgreich ist, "denkt" Windows, dass eine Internetverbindung besteht.

Hätt gedacht, dass es dann ne Ereignis-ID gibt, auf welche ich überprüfen kann.
In der Ereignisanzeige gibt es zumindest Einträge unter "Anwendungs- und Dienstprotokolle → Microsoft → Windows → NCSI". Dort steht z. B. "ActiveDnsProbeFailed", wenn die Namensauflösung fehlschlägt. Die Einträge sind aber alle nur vom Ereignistyp "Information".

ausführlicher unter:
https://technet.microsoft.com/de-de/library/ee126135(v=ws.10).aspx
http://blogs.technet.com/b/networking/archive/2012/12/20/the-network-co ...
tingel
tingel 29.06.2015 um 15:34:59 Uhr
Goto Top
Danke madebo.

Das war schon mal der richtige Hinweis.
Allerdings hab ich grad noch n Problem, das Ereignis in der Aufgabenplanung zu verwenden.
Es startet jetzt die Aktion bei jedem Ereignis und nicht nur bei "ActiveDnsProbeFailed".
114757
Lösung 114757 29.06.2015, aktualisiert am 22.07.2015 um 16:43:36 Uhr
Goto Top
Da gibt's hier jede Menge Threads wie man das Eventlog detailliert filtern und den Tasktrigger darauf aufbauen kann:
Aufgabenplanungs-Ergebnis abfragen