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:
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.
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: