Sonntag, 10. März 2013

Kurztipp: Netzlaufwerke und VPN - Verbindung automatisieren mit Applescript

Netzlaufwerke und VPN - Manuell Verbindung mit Mac OS X


Heute geht es mal nicht um ein Ausbildungsthemen, sondern um ein Produktivitätsthema, dass die Arbeit mit Netzlaufwerken unter Mac OS X für mich erheblich vereinfacht hat. Seit ich Mac OS X 10.8. nutze ist mir ziemlich auf die Nerven gegangen, dass ich Netzlaufwerke nach der Initialisierung einer VPN Verbindung immer manuell einbinden musste. Im Finder kann man mit "cmd K" bzw. in der Menüleiste unter "Gehe zu" --> "Mit Server verbinden" die Netzlaufwerke einbinden.
Automatisierung des Verbindungsaufbau
Unter Mac OS X stehen mehrere Lösungsmöglichkeiten zur Automatisierung bereit. Eine erste automatische Lösung mit Automator funktionierte bei mir nicht richtig. Ich habe dann im Internet gesucht und bin auf ein Blog (http://blog.schmehr.de/2012/03/23/mac-os-x-vpn-verbindung-und-statische-route-mit-apple-script/) gestoßen, in dem eine funktionierende Lösung zum Verbinden via VPN steht. Der erste Teil ist somit abgeschlossen. Die Netzlaufwerke einbinden kann man mit "mount volume"

tell application "System Events"
tell current location of network preferences
# NAME_DER_VPN_VERBINDUNG finden Sie in den Netzwerkeinstellungen
set VPNservice to service "NAME_DER_VPN_VERBINDUNG"
if exists VPNservice then connect VPNservice
repeat until (connected of current configuration of VPNservice)
delay 1
end repeat
end tell
end tell

# try, damit das Script nicht abstürzt, wenn die Share nicht online ist.
try
# Die Netzwerkshares (Windows Shares via SAMBA) werden nach folgendem Schema eingebunden
# Wenn keine Domäne vorhanden einfach DOMAENE; weglassen
mount volume "smb://DOMAENE;NUTZERNAME@SERVERNAME_ODER_IP/SHARE"
mount volume "smb://DOMAENE;NUTZERNAME@SERVERNAME_ODER_IP/SHARE2"
end try

Automatisierung des Verbindungsabbau
Der Verbindungsabbau sollte ebenfalls automatisiert werden. Dazu müssen natürlich die Netzlaufwerke zuerst ausgehangen werden. Dies geht am einfachsten, indem man den UNIX-Befehl "umount" verwendet. Die Befehle, die man auf der Kommandozeile starten kann, lassen sich mit do shell script in Applescript einbinden. Vorher sollten alle geöffneten Dateien der Shares geschlossen werden, sonst droht Datenverlust.

# try, damit das Script nicht abstürzt, wenn die Shares nicht gemountet sind.
try
#Aufrufen des UNIX-Befehls umount. Alle Windows-Shares des Servers werden ausgebunden.
do shell script "umount -t smbfs -h SERVERNAME_ODER_IP;"
delay 3
end try

#Prüfen ob VPN-Verbindung besteht und diese dann beenden
tell application "System Events"
tell current location of network preferences
set VPNservice to the service "NAME_DER_VPN_VERBINDUNG"
if VPNservice is not null then
disconnect VPNservice
end if
end tell 
end tell

Speicherung der Scripte
Die Scripte kann man per Export als App ablegen und dann starten. Ich nutze Butler (http://manytricks.com/butler/) um wiederkehrende Tätigkeiten zu strukturieren. Damit kann man den exportierten Scripten eine Tastenkombination zuweisen. Mit "ctrl-alt-c" startet der Rechner nun die VPN Verbindung und mountet die Laufwerke, mit "ctrl-alt-d" werden die Laufwerke ausgehangen und die VPN-Verbindung abgebaut.
Fazit
Im Prinzip eine sehr einfache Lösung, die prima für mich funktioniert. Damit keine Passwörter im Script stehen (man könnte auch mount volume "smb://DOMAENE;NUTZERNAME:PASSWORT@SERVERNAME_ODER_IP/SHARE" aufrufen) empfehle ich die VPN-Verbindung manuell zu starten und die Shares manuell zu verbinden und die Passwörter dann im Schlüsselbund zu speichern.

Keine Kommentare:

Kommentar veröffentlichen