Script für VPN und Volumes

fan03

Mitglied
Thread Starter
Dabei seit
03.01.2023
Beiträge
10
Reaktionspunkte
0
Hallo

Ich möchte ein Script erstellen der ein VPN startet und anschliessend Volumes verbindet.

Soweit bin ich:

VPN starten
AppleScript:
tell application "System Events"
    tell current location of network preferences
        set myVPN to the service "NAME DES VPN"
        if myVPN is not null then
            if current configuration of myVPN is not connected then
                connect myVPN
            end if
        end if
    end tell
    return 60
end tell



VOLUMES verbinden
AppleScript:
set command to "ping -c 1 192.168.44.4"
try
    if ((do shell script command) contains " packets received, 0.0% packet loss") then
        mount volume "smb://192.168.44.4/Volume-A"
        mount volume "smb://192.168.44.4/Volume-B"
        mount volume "smb://192.168.44.4/Volume-C"
       
       
    end if
end try


Beide Scripts funktionieren wenn ich sie einzeln als .app speichere und doppelklicke.
Aber beides in EINEM Script funktioniert leider nicht. Das VPN wird gestartet, aber die Volumes werden nicht verbunden.


Was mache ich falsch?

Später möchte ich noch ein Script für die Umgekehrte Reihenfolge erstellen. Also Volumes auswerfen und VPN trennen.

Gruss
fan03
 
Wie lange Wartezeit baust du zwischen die beiden Scriptbestandteile wenn du eines daraus machst? Wenn du die beiden ohne "Gedenkminute" hintereinander ausführst, dann wurde zwar der VPN Befehl schon abgesetzt, aber die Routing Table hat noch kein Update bekommen, weil das "Connecten" einen kleinen Moment im Hintergrundprozess dauert - macOS ist halt kein Echtzeitbetriebssystem ...
 
  • Gefällt mir
Reaktionen: dg2rbf und fan03
Für die zweite Hälfte.

Kleiner Test und Verzögerungs-Schleife.
Statt "mount" mit "open", geht hier am besten.

Code:
#Share verbinden, falls erforderlich
#nur "open" kann ohne Klimmzüge unter /Volumes mounten
if df -T smbfs | grep "/Volumes/FREIGABE"
then echo "nix getan"
else
  open smb://SERVER/FREIGABE
  until df -T smbfs | grep "/Volumes/FREIGABE"
  do
    sleep 1
  done
fi
 
Aber beides in EINEM Script funktioniert leider nicht.
Beendet return 60 im oberen Script nicht das ganze Script?
Warum auch immer da ein return ist.
Hast du das irgendwo raus kopiert wo es Funktion war?
 
  • Gefällt mir
Reaktionen: fan03 und ruerueka
Beendet return 60 im oberen Script nicht das ganze Script?
Warum auch immer da ein return ist.
Hast du das irgendwo raus kopiert wo es Funktion war?
Ich habe das alles im Internet recherchiertr. Ich habe eigentlich keine Ahnung vom Scripten.


Ich habe jetzt dank euren inputs den "return 60" rausgenommen und zwischen den beiden Befehlen einen "delay 6" eingefügt.

Total nun so:
AppleScript:
tell application "System Events"
    tell current location of network preferences
        set myVPN to the service "PEK VPN (L2TP)"
        if myVPN is not null then
            if current configuration of myVPN is not connected then
                connect myVPN
            end if
        end if
    end tell
    
end tell
delay 6
set command to "ping -c 1 192.168.44.4"
try
    if ((do shell script command) contains " packets received, 0.0% packet loss") then
        mount volume "smb://192.168.44.4/PEK-Drive"
        mount volume "smb://192.168.44.4/PEK-Mgmt"
        mount volume "smb://192.168.44.4/PEK-Owners"
        
        
    end if
end try

Jetzt funktioniert es wunderbar.
 
Für die zweite Hälfte.

Kleiner Test und Verzögerungs-Schleife.
Statt "mount" mit "open", geht hier am besten.

Code:
#Share verbinden, falls erforderlich
#nur "open" kann ohne Klimmzüge unter /Volumes mounten
if df -T smbfs | grep "/Volumes/FREIGABE"
then echo "nix getan"
else
  open smb://SERVER/FREIGABE
  until df -T smbfs | grep "/Volumes/FREIGABE"
  do
    sleep 1
  done
fi

Das führt zur folgenden Meldung:
Syntaxfehler
„then“, etc. erwartet, aber Identifier gefunden.
 
Kann mir jemand erklären, wie ich das Script verwenden kann?:rolleyes::rolleyes: Ich habe versucht, den Anweisungen zu folgen, aber ich habe Schwierigkeiten bei der Umsetzung. Gibt es vielleicht eine detaillierte Anleitung oder weitere Ressourcen, die mir helfen könnten?
 
Lass dir von ChatGPT doch eins schreiben. ;)
Welches hast denn probiert?
Du musst schon den VPN Namen und die IP der Mounts anpassen.
 
Zurück
Oben Unten