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-Key: 275973

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

Printed on: April 26, 2024 at 17:04 o'clock

Mitglied: 114757
114757 Jun 29, 2015 updated at 11:21:08 (UTC)
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
Member: kaiand1
kaiand1 Jun 29, 2015 at 10:52:30 (UTC)
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.
Member: Lochkartenstanzer
Lochkartenstanzer Jun 29, 2015 at 10:54:45 (UTC)
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
Member: tingel
tingel Jun 29, 2015 at 11:19:26 (UTC)
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.
Mitglied: 114757
114757 Jun 29, 2015 updated at 11:30:54 (UTC)
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
Member: madebo
madebo Jun 29, 2015 at 12:33:52 (UTC)
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 ...
Member: tingel
tingel Jun 29, 2015 at 13:34:59 (UTC)
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".
Mitglied: 114757
Solution 114757 Jun 29, 2015, updated at Jul 22, 2015 at 14:43:36 (UTC)
Goto Top
Da gibt's hier jede Menge Threads wie man das Eventlog detailliert filtern und den Tasktrigger darauf aufbauen kann:
Aufgabenplanungs-Ergebnis abfragen