Script auto-reconnexion tout service VPN abandonné.
J'avais utilisé rjarvis2010 's solution mais je n'en étais pas tout à fait satisfait.
J'ai de nombreux services VPN différents auxquels je me connecte, donc je voulais un script qui reconnecterait automatiquement tout VPN auquel je suis connecté.
on idle
tell application "System Events"
tell location "Uni" of network preferences
-- keep checking for VPN name until a VPN is connected
set empty to true
repeat until empty is false
try
-- set variable "myVPN" to the name of the service that is connected and is a VPN
set myVPN to get name of first service whose (kind is greater than 11 and kind is less than 17) and connected of current configuration is true
set empty to false
on error
set empty to true
delay 15
end try
end repeat
-- doReconnect is a file that reads from the ppp.log and contains "true" by default, "false" if the vpn service was manually disconnected recently
local doReconnect
set doReconnect to (do shell script "cat /var/run/reconnect_vpn")
repeat while doReconnect contains "true"
set ConfProp to get current configuration of service myVPN
if connected of ConfProp is false then
delay 1
set doReconnect to (do shell script "cat /var/run/reconnect_vpn")
if doReconnect contains "true" then
try
connect service myVPN
on error errorMessage
end try
else
exit repeat
end if
end if
delay 5
end repeat
end tell
end tell
return 1
end idle
Pour que cela fonctionne pour vous, vous devez remplacer
-
Uni
avec le nom de votre emplacement, quel qu'il soit
Une fois que vous avez terminé, enregistrez-la en tant qu'application et placez-la dans vos éléments de connexion et vous êtes prêt.
De plus, et c'est important, vous devez configurer les crochets PPP comme décrit dans le document suivant rjarvis2010 's solution
Aussi, je vous recommande de ne pas essayer ceci en connectant plusieurs VPNs simultanément. Pour arrêter ce script, vous devrez peut-être le quitter de force via le moniteur d'activité (car les boucles répétées ne lui permettent pas de recevoir une entrée externe à certains moments).