AcProfileSwitcher

Aus ThinkPad-Wiki

Hintergrund

Das automatische Umschalten zwischen den Profilen in Abhängigkeit der aktuellen Netzwerkumgebung funktioniert nicht immer sauber. Der Grund kann durchaus darin liegen, dass manche Adapter mehrfach genutzt werden, z.B. von VMWare. Fakt ist und war, dass Access Connections für den Automatismus nur DHCP-basierte Profile verwenden kann. Die hier vorliegende Lösung hat diese Restriktion ebenfalls, da eine funktionierende IP-Verbindung, aus dem das Programm ein Default Gateway auslesen kann, benötigt wird. Wenn jedoch zum Zeitpunkt des Rechnerstarts eine feste IP vergeben ist und der Rechner sich mittlerweile in einem anderen Netzwerk befindet, kann eine solche 'aktive' Verbindung nicht aufgebaut werden. Ergo kann das Programm kein Default Gateway ermitteln.

AcProfileSwitcher

Das Programm baut wie schon erwähnt darauf auf, dass es 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 ermittelt es die MAC-Adressen. Diese MAC-Adressen werden mit den in der INI-Datei hinterlegten MAC-Adressen verglichen. Sobald eine Übereinstimmung festgestellt wird, wird der zugeordnete Profilname ermittelt (ebenfalls aus der INI) und Access Connections angewiesen auf das soeben ermittelte Profil umzuschalten. Da dieser Vorgang ein paar Sekunden dauern kann, wurden ressourcenschonende Warteschleifen implementiert.

Wer darauf Wert legt, dass dieser beschriebene Vorgang bereits VOR der Windows-Anmeldung geschieht, kann das Programm mithilfe eines kleinen Tools als Windows-Service installieren (siehe weiter unten). Der Dienst wird nach Beendigung des Programms (was spätestens nach der definierten maximalen Wartezeit geschieht) automatisch beendet und benötigt dann keinerlei Ressourcen. Ansonsten kann das Programm in den Autostart-Ordner gelegt oder aber auch beliebig von Hand gestartet werden. Innerhalb von Access Connections sollte das automatische Umschalten deaktiviert werden.

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:

[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 bekommt man 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").

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 vergebenen Dienstnamen.

Mögliche Erweiterungen / Ideen

Denkbar wäre es durchaus, statt Access Connections ein alternatives Programm wie z.B. NetSetMan zu steuern oder auch ganz andere Software/Scripts/Aktionen zu starten. Ideen sind willkommen!

Download

Im Forum