Hallo, wie kann ich feststellen ob eine Verbindung zu einem bekannten Netzwerk besteht und darauf hin automatisiert Dateien auf einen dort freigegebenen Ordner kopieren? Gibts evtl. ein Script oder fertiges Programm? Gruß Chris
https://wiki.archlinux.org/index.php/NetworkManager#Network_Services_with_NetworkManager_Dispatcher Lässt sich auch auf andere Distros übertragen
Vielen Dank Luk4s, das Ganze ist mir allerdings zu "hoch". Da ich es verpasst hatte zu erwähnen, das es sich um ein Win 7 Betriebssystem handelt wär Dein Vorschlag vermutlich genau der richtige, wenn ich was mit Linux am Hut hätte. Am liebsten wäre mir, wenn ich die bestehende Verbindung mit Windows-Bordmitteln abfragen könnte... So in der Art: if (connection == "SSID") xcopy x: y:; Gruß Chris
Du könntest die Ausgaben von ipconfig interpretieren, vielleicht genügt das schon. Ansonsten dürfte die von Dir gewünschte Information per WMI ermittelbar sein, diese Schnittstelle sollte mit VBScript oder über die Powershell auswertbar sein.
Herzlichen Dank Rufus, das ist genau das, wonach ich gesucht hatte. VBScript & WMI [[http://www.mcseboard.de/windows-forum-lan-wan-32/auslesen-status-netzwerkverbindung-vbscript-wmi-80768.html]]
Jetzt hab ich mal ein bisschen mit VBS und WMI herumgespielt. Herausgekommen ist bisher dies:
1 | strComputer = "." |
2 | Set WshShell = WScript.CreateObject("WScript.Shell") |
3 | Set objWMIService = GetObject("winmgmts:" _ |
4 | & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") |
5 | Do |
6 | WScript.Sleep 5000 |
7 | Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapter Where NetConnectionStatus = 2") |
8 | connect = 0 |
9 | For Each objItem in colItems |
10 | If objItem.NetConnectionStatus = 2 Then connect = 1 |
11 | Next |
12 | Loop Until connect = 1 |
13 | For Each objItem in colItems |
14 | text = text & "NetConnectionID: " & objItem.NetConnectionID & VbCrLf |
15 | text = text & "NetConnectionStatus: " & objItem.NetConnectionStatus & VbCrLf |
16 | text = text & "AdapterType: " & objItem.AdapterType & VbCrLf |
17 | text = text & "ProductName: " & objItem.ProductName & VbCrLf |
18 | WScript.Echo TEXT |
19 | Next |
Das Script frägt alle fünf Sekunden den Netzwerkadapter ab. Funktioniert soweit ganz gut. Nur die Prozessorauslastung der WMI-Abfrage ist enorm - So kann ich das Script nicht verwenden. Hat noch jemand einen Vorschlag? Gruß Chris
Ich versteh jetzt den Code nicht im Detail, aber was hindert dich daran die Pause größer zu machen? Du must sowieso immer mit einer Fehlentscheidung rechnen, sei es weil das Netz kurz nach deiner Abfrage wieder weg ist, oder während deiner gewünschten Datenübertragung verlustig geht. Kann man sowas nicht über den Taskplanermanager machen oder wie das Dingens heißt? Worauf es ankommt, ist ja nur die automatische Fehlerbehandlung. Also einfach als Backup-Vorgang definiert.
Die Verbindung besteht in der Regel nur für kurze Zeit. Die Dateien müssen quasi im Vorbeigehen kopiert werden. Aus diesem Grund benötige ich eine schnelle Verbindungsauswertung. Aber Dein Vorschlag mit dem Aufgabenplaner ist Klasse. Dort lässt sich unter den Bedingungen einstellen, das eine Aufgabe nur ausgeführt wird, wenn eine Netzwerkverbindung hergestellt ist. Mal sehen ob das funktioniert... Danke
Naja. Freu dich nicht zu früh. Bei M$ gibts gerne Überraschungen. Ein Torrent wäre auch eine Idee. Bei mir ist es jedensfalls egal, ob Internet vorhanden oder nicht. Der Torrent wird einfach später weiter fortgesetzt.
Du hattest recht. Doch zu früh gefreut. Problem mit dem Aufgabenplaner: Man kann zwar als Zusatzbedingung angeben das eine Aufgabe nur ausgeführt wird wenn eine Netzwerkverbindung besteht, aber ich konnte nicht herausfinden wie man eine hergestellte Netzwerkverbindung als "Trigger", der zur eigentlichen Auslösung der Aufgabe benötigt wird, einstellen kann. Neben den zeitlichen und div. anderen Triggern gibt es auch eine Unmenge an Ereignistriggern. Welcher davon aber eine Netzwerkverbindung triggert ist mir unbekannt. Kann mir zum Thema Aufgabentrigger jemand weiterhelfen?
Eine Netzwerkverbindung oder alle? Wenn du selbst nicht am Netz hängst, ist deine IP schlicht Null. (Zumindest bei DHCP)
Eine bestimmte Verbindung. Aber was nützt mir bei DHCP die IP?
ab vista gibt es für sowas den network list manager. der gibt einem, auf wunsch, auch einen dezenten hinweis wenn eine netzwerkverbindung auf oder abgebaut wurde: http://msdn.microsoft.com/en-us/library/aa370803(v=VS.85).aspx
Bei DHCP bekommst du deine IP zugewiesen. Wenn dein Rechner den DHCP-Server nicht erreichen kann, ist deine eigene IP Null. Solange die IP also auf 0 steht, hast du keine Netzwerkverbindung. Also brauchst du nur eine Möglichkeit deine eigene IP zu lesen. Ich kenns nur von PHP, da geht es.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.