Biete eigene Lösung um Access Connections zum automatischen Umschalten der Profile zu bewegen.

Axel

Member
Themenstarter
Registriert
25 Apr. 2004
Beiträge
481
Biete eigene Lösung um Access Connections zum automatischen Umschalten der Profile zu bewegen.

Hallo zusammen.

Da mir meine Probleme mit dem automatischen Umschalten der Access Connections Profile seit Jahren auf den Nerv gingen, habe ich eine eigene Lösung programmiert.
Mein Programm nutzt natürlich Access Connections und soll es nicht ersetzen.

Hintergrund:
Das automatische Umschalten zwischen den Profilen in Abhängigkeit der aktuellen Netzwerkumgebung funktionierte bei mir nie sauber.
Nachdem ich jetzt viel über Netzwerkadapter und deren Konfiguration gelernt habe, kann ich mir auch vorstellen warum.
Manche Adapter werden mehrfach genutzt, z.B. auch von VMWare.
Vielleicht ist da ja ein Zusammenhang zu suchen, warum das bei mir nicht klappt und bei vielen doch.
Des Weiteren habe ich nun auch erkannt, warum die automatische Umschaltung nicht mit festen IPs funktionieren kann und warum man DHCP benötigt:
Ich brauche für meine Lösung nämlich (auch) eine funktionierende IP-Verbindung, aus der ich ein Default Gateway auslesen kann.
Wenn aber zum Zeitpunkt des Rechnerstarts eine feste IP vergeben ist und der Rechner sich jedoch mittlerweile in einem anderen Netzwerk befindet, habe ich keine solche 'aktive' Verbindung. Ergo kann ich kein Default Gateway ermitteln.


Vorab ein paar Worte:
Das hier ist die erste lauffähige Version. Es gibt sicherlich noch Ecken und Kanten die mit der Zeit und eurem Feedback verbessert werden.
Sowohl mein Programm, dieser Text hier, als auch z.B. das verwendete Programm zum Dienst-Installieren wird sicherlich noch überarbeitet/ausgetauscht werden.
Aber es wird definitiv kostenlos bleiben. Ich hege keinerlei kommerzielles Interesse.
Das Programm verändert NICHTS am System. Es liest lediglich Netzwerkkonfigurationsdaten aus, und weist Access Connections an, das Profil umzuschalten.
Von daher existiert kein mir bekanntes Risiko. Bei mir funktioniert es prächtig.
Allerdings übernehme ich natürlich keinerlei Haftung für entstehende Probleme oder Schäden!
Zur Seite stehe ich zur Problemlösung aber natürlich gerne.


Meine Lösung:
Ich baue darauf auf, dass ich zum Zeitpunkt des Rechnerstarts aus irgendeiner Netzwerkkarte(nkonfiguration) ein gültiges Default-Gateway auslesen kann. Das könnten unter Umständen auch mehrere sein.
Von diesen gefundenen IP-Adressen hole ich mir die MAC-Adressen.
Diese MAC-Adressen vergleiche ich mit den in meiner INI-Datei hinterlegten MAC-Adressen.
Sobald eine übereinstimmt, nehme ich den zugeordneten Profilnamen (ebenfalls aus der INI) und schalte in Access Connections auf das soeben ermittelte Profil um.
Da dieser Vorgang ein paar Sekunden dauern kann, habe ich ressourcenschonende Warteschleifen implementiert.
Das ganze soll bei mir bereits VOR dem Anmelden geschehen, weshalb ich das Programm mithilfe eines kleinen Tools als Windows-Service installiere.
Der Dienst wird nach Beendigung des Programms (was spätestens nach der maximal definierten Wartezeit geschieht) automatisch beendet und benötigt dann keinerlei Ressourcen.
Wem es reicht, dass das Programm beim Anmelden das Profil umschalten soll, der kann es z.B. auch in den Autostart legen.
Innerhalb von Access Connections sollte das automatische Umschalten deaktiviert werden (bei mir habe ich es deaktiviert).

Programmübersicht:
AcProfileSwitcher.exe: Das Programm.
AcProfileSwitcher.ini: Die Konfigurationsdatei.
ACProfileSwitcher.log: Die Log-Datei.
RunAsSvc: Das Verzeichnis des Hilfsprogramms zum Installieren des Programms als Windows Service.

Übersicht der INI-Datei:
Code:
[Application]
MaxWaitTime=120 : Die maximale Zeit, die das Programm versucht das korrekte Profil anhand der Netzwerkinfrastruktur zu finden.
WaitInterval=5 : Die Wartezeit zwischen den einzelnen Versuchen.

[MacToAcProfileMappings] : Zuordnung der MAC-Adressen der Default-Gateways (in der Regel der Router) zu den Access Connection Profilen.
00:AA:BB:CC:DD:EE=Profile1
00:11:22:33:44:55=Profile2


Wie bekomme ich die MAC-Adressen?
1. Alternative:
- Nach erstem Programmstart stehen gefundene MAC-Adressen im LOG-File (siehe dort Eintrag "Found Default Gateway Macs:").
2. Alternative:
- Eine DOS-Box öffnen.
- Mittels "ipconfig" die IP-Adresse des Default-Gateways herausfinden.
- Diese Adresse einmal anpingen. Beispiel "ping 192.168.168.1"
- Mit z.B. "arp -a 192.168.168.1" die MAC Adresse auslesen (steht dort unter "Physikalische Adresse").


Download:
http://mir.cr/DCTLLNQV
oder:
http://dl.dropbox.com/u/15415342/AcProfileSwitcher0.1.zip


Installieren als Windows Service:
Das Programm "RunAsSvc\RunAsSvc.exe" ausführen und wie folgt einen Dienst erstellen (exemplarisch):
- Dienstname: AcProfileSwitcher
- Beschreibung: AcProfileSwitcher
- Pfad zur EXE: C:\Programme\AcProfileSwitcher\AcProfileSwitcher.exe
- Arbeitsverzeichnis: C:\Programme\AcProfileSwitcher
- Mit dem Button "OK" den Dienst installieren.

Deinstallation des Dienstes:
Es existiert ein Eintrag in "System/Software". Dieser fängt mit "Pirmasoft" an und enthält auch den von euch vergebenen Dienstnamen.

Mögliche Erweiterungen / Ideen:
Denkbar wäre es durchaus, statt Access Connections ein alternatives Programm wie z.B. NetSetMan steuern oder auch ganz andere Software/Scripts/Aktionen zu starten.
Für Ideen bin ich dankbar. :)


So, ich hoffe, ich habe nichts vergessen.

Gruß,
Axel

P.S.:
Den ganzen Text hier habe ich auf die Schnelle zusammengetippt.
Wer Rechtschreibfehler findet kann sie behalten. :-)
 
Zuletzt bearbeitet von einem Moderator:
Nicht schlecht, Herr Specht ;)

Für welche Windows-Version(en) gilt es?


.
 
Danke dir. :)
Ich habe es wie gesagt gestern Abend erst fertig bekommen und bisher nur auf meinem Windows XP SP3 eingesetzt.
Dort rennt es bisher wie es soll (gestern Abend hat es zuverlässig mein 'Zuhause'-Profil und heute morgen mein 'Firma'-Profil erkannt und darauf umgeschaltet.

Von daher wäre es toll, Feedback bzgl. anderer Betriebssysteme zu erhalten.

Gruß,
Axel
 
Hi Axel,

schöne und nützlich Arbeit. :thumbsup: Wäre Cool, wenn du das so ins Wiki aufnehmen könntest. Da ist es viel besser aufgehoben. :)

Edit: Link korrigiert.
 
Hi Mornsgrans,

wissen die Admins Bescheid? Hab' nämlich den Link aus dem Forumsbanner genommen. :huh:
 
Tja - und ich lese dieses Forum :D

Ich hatte es torsten vorletzte Woche zwar mitgeteilt, als er den Wiki-Link wieder eingefügt hatte, aber er hatte es wohl vergessen, zu ändern.


.
 
Hi Axel,

also ich habe meinen Artikel "Beim Herunterfahren automatisch auf lautlos stellen" auf der Hauptseite unter "Anleitungen" einsortiert. Ich denke, dass passt hier auch sehr gut. :)
 
Tolles Tool - und funktioniert mit Windows7!

Ich hatte mit meinem System (T60P, Windows7) ebenfalls ein Problem mit Access Connections (bei mir wurde immer nur der aktuelle Port gespeichert, auch wenn ich 4 Profile hinterlegt habe)... :-(

Mit diesem Tool (bisher nocht nicht als Service) funktioniert die Zuordnung!

DAnke und Gruß
Alexander
 
Rückfrage zu AcProfileSwitcher

Hallo zusammen,

ich bin durch ein Problem mit AccCon auf diese Seite und auch auf dieses Programme AcProfileSwitcher aufmerksam geworden.
Allerdings ergeben sich aus der Dokumentation für mich noch Fragen, vielleicht bin ich auch einfach nur zu blöd um es zu raffen :S ...Deswegen frag ich einfach mal:

Meine Konfiguration:
Win7 mit AccCon 5.50

Das Ausgangsproblem:
Bei meinen Profilen, die mit "bestes Verfügbares Netz" und "DHCP" konfiguriert sind, funktioniert der automatische Standortwechsel wunderbar (Beispiel Profil "Home").
In der Firma allerdings muss ich eine feste IP nutzen. Beim Systemstart erkennt AccCon einen neuen Standort, diesen hinterlege ich dann als "Firma". Es ist aber vollkommen egal, ob ich die Netzwerkkarte vorher schon mit einer festen IP belegt habe, oder die auf DHCP stand, das Profil "Firma" wird von AccCon immer mit "DHCP" hinterlegt. Gleichzeitig wird auch eine Zuordnung in den gespeicherten Ports hinterlegt, die mein Profil "Firma" mit der MAC des Gateway verknüpft.
Ändere ich das Profil "Firma" jetzt dahingehend ab, dass die feste IP verwendet wird, löscht er mir sofort den Eintrag aus den gespeicherten Ports raus. Wenn ich mich von nun ab an neu an das Firmennetz anschließe, kommt jedes mal der Dialog, den neu erkannten Standort als Profil zu hinterlegen.

Gut, aus den Erläuterungen hier im Forum konnte ich entnehmen, dass das mit der festen IP scheinbar ne schwierige Sache ist.
AccCon könnte den automatischen Standortwechsel nicht durchführen, wenn eine feste IP hinterlegt ist, die in einem anderen Netzwerk aber keine Verbindung zu einem Gateway bekommt.
Soweit richtig???

Aber was bitte macht dann das Programm AcProfileSwitcher anders? In der Doku steht schließlich, dass AcProfileSwitcher ebenso ein gültiges Gateway ermitteln können muss, wie es AccCon braucht. Also wo ist der Unterschied???

Weitere Frage: Kann AcProfileManager mein Problem lösen?


Ich hoffe, ich habe euch mit ausreichend Informationen gefüttert. Wenn ihr noch was wissen wollt, einfach fragen.
Für eure Antworten im voraus schon mal besten Dank.
 
Coole Sache - großen Respekt! :thumbup:

Kommt evtl. noch ein Update, sodass man es auch unter Win 7 (x64) als Dienst nutzen kann?

Gruß, Jonny
 
Komisch, dass ich das erst jetzt lese. Ich muss mal prüfen, warum die Benachrichtigung nicht geklappt hat...
Sorry, für den überaus späten Reply. Aber besser spät als nie:

Aber was bitte macht dann das Programm AcProfileSwitcher anders? In der Doku steht schließlich, dass AcProfileSwitcher ebenso ein gültiges Gateway ermitteln können muss, wie es AccCon braucht. Also wo ist der Unterschied???
Access Connections macht es nicht immer korrekt. Mein Tool bisher schon. ;-)

Weitere Frage: Kann AcProfileManager mein Problem lösen?
Noch nicht. Das Problem mit dem automatischen 'Zurückswitchen aus einer Fixed-IP Configuration' besteht bei mir natürlich auch.
Ich brauche dafür eine Routine, die mir einen DHCP-Client Broadcast unabhängig von TCP-IP durchführen kann.
Das ist nicht trivial und ich bin bisher noch nicht weiter dazu gekommen.
Ich werde mich des Problems aber nochmals annehmen.

Kommt evtl. noch ein Update, sodass man es auch unter Win 7 (x64) als Dienst nutzen kann?
Ich nutze es unter Win 7 x64 als Dienst. Wo ist das Problem bei dir? Was klappt nicht?


Gruß,
Axel
 
Hallo Axel,
das Forum ist vor einigen Monaten auf eine neu Software ungezogen. Alle persönlichen Einstellungen müssen daher neu vorgenommen werden.

Gibt es Änderungen oder nue Erkenntnisse, dann bitte auch an deinen Wiki-Artikel denken.
 
Hallo Axel,

habe ein paar Fragen bezüglich AcprofileSwitcher.
In meiner Log-Datei steht folgendes:

11.03.2012 16:18:14: Start of program.
11.03.2012 16:18:16: Network Adapters found: 1
11.03.2012 16:18:16: Network Adapters Configs found: 1
11.03.2012 16:18:16: Found Default Gateways: 192.168.0.1
11.03.2012 16:18:16: Found Default Gateway Macs: 58:6D:8F:15:64:70
11.03.2012 16:18:16: Found no proper ProfileName.
11.03.2012 16:18:16: End of program

Das heißt soviel das er denn Profilnamen nicht ermitteln konnte, oder?

[Application]
MaxWaitTime=120
WaitInterval=5

[MacToAcProfileMappings]
00:21:6A:B8:6B:CE=Daheim
C8:9C:1D:27:46:E4=Büro

Das habe ich in der .ini stehen und Access Connections sieht wie folgt aus.

Was läuft da schief?

Danke

EDIT: Fehler gefunden.

Habe meinen Router angepingt (ping 192.168.0.1) und danach mit arp -a die MAC-Adresse ausgelesen und siehe da, die ist anders als sie mit Access Connetions anzeigt.

Nun habe ich folgende Ausgabe.

Start of program.
11.03.2012 16:37:28: Network Adapters found: 1
11.03.2012 16:37:28: Network Adapters Configs found: 1
11.03.2012 16:37:28: Found Default Gateways: 192.168.0.1
11.03.2012 16:37:28: Found Default Gateway Macs: 58:6D:8F:15:64:70
11.03.2012 16:37:28: Found ProfileName: Zu Hause
11.03.2012 16:37:28: End of program.
 

Anhänge

  • Unbenannt.jpg
    Unbenannt.jpg
    77,7 KB · Aufrufe: 11
Zuletzt bearbeitet:
Freut mich, dass es funktioniert.
Ich bin mittlerweile einer Lösung nahe, auch bei einer 'falschen' statischen IP die Umgebung zu erkennen und das korrekte Profil zu aktivieren.
Allerdings muss ich dazu die Antworten eines 'herumstehenden' DHCP-Servers analysieren. Diese beinhalten leider NICHT dessen MAC-Adresse.
Aber über die (Client-)Daten, die er mir gibt, wie z.B. IP-Adresse, Subnet-Mask, Default-Gateway und Lease-Time kann ich auch auf eine Netzwerkumgebung schließen.
Von Nachteil wäre nur, wenn man tatsächlich mehr als eine Umgebung hat, wo die per DHCP-Server zugewiesene IP-Adresse inkl. SubNetMask aus dem gleichen Bereich kommt und dann auch noch das Default-Gateway und die LeaseTime des Servers gleich sind.
Denn scheinbar geht es nicht, ohne korrekte IP-Konfiguration die MAC-Adresse des Routers oder Default-Gateways zu ermitteln.

Falls jemand Interesse hat, kann ich ja mal ein Test-Tool, welches den/die DHCP-Server abklopft, hochladen.
Dann sehen wir auch mal, wie zuverlässig das läuft.

Ach so, die neue Version ist dann allerdings .NET Framewerk basierend und nicht mehr mit VB6.

Gruß,
Axel
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben