script VPN en erreur après MàJ Sierra

OmegaPoint

Membre confirmé
20 Février 2011
12
0
34
Bonjour,

j'avais sous 10.11 un script de re-connexion automatique de mon VPN, s'ouvrant au démarrage. Mais avec la mise à jours vers 10.12, j'ai eu la surprise (pas celle de devoir reconfigurer mon VPN...) d'avoir à chaque lancement de ce script une erreur. J'ai planché la dessus pendant un moment mais pas moyen de comprendre ce qui cloche...

L'erreur en question est

Il est impossible d’obtenir «class svce» "VPN" of «class locc» of «class netp» of application "System Events".
Erreur dans System Events : Il est impossible d’obtenir service "VPN" of current location of network preferences. (-1728)



à savoir que "VPN" est le nom de VPN, tel que configuré dans les préférences réseau.



J'ai récupéré le script sur internet, je ne sais plus vraiment où.. mais même après en avoir essayé d'autres, le problème persiste..

on idle
tell application "System Events"
tell current location of network preferences
set myConnection to the service "VPN"
if myConnection is not null then
if current configuration of myConnection is not connected then
connect myConnection
end if
end if
end tell
return 20
end tell
end idle

je commence vraiment a sécher... j'espère que vous pourrez éclairer ma lanterne!
merci et bonnes fêtes :)
 
Deux petites questions pour tâter le terrain :
  • as-tu essayé avec un autre nom de connexion ?
  • la connexion "VPN" fonctionne-t-elle correctement lorsque tu l'actives manuellement ?
Et avec "System Preferences" au lieu de "System Events" ?
 
Dernière édition:
En cherchant un peu, je constate que le script semblait déjà en panne avec El Capitan pour certains utilisateurs.
 
Et ce lien donne une idée intéressante : utiliser la commande scutil.
Si ça marche avec cette commande, on peut l'utiliser au sein d'un script AppleScript pour faire ce que tu souhaites.

Si j'ai le temps (ce soir, c'est plutôt mathématiques...) je regarderai sur mon MBA qui est sous Sierra
 
Alors concernant le nom du VPN j'ai essayé de le changer, même problème, par contre pas de problème quant à la connexion manuelle!
ben justement je me demandais si y'avait pas un soucis avec ce system events.. mais quand je remplace Events par Preferences j'ai une erreur de compil :/
Déjà avec El Capitan? et des morceaux de solutions?

Edit: Ok je lis ça, par contre j'utilise AppleScript en mode newby alors écrire un script... voilà voilà ^^
Merci pour ton aide
 
Dernière édition:
On peut insérer des commandes dans un script AppleScript ou Automator.
 
Bon, j'ai écrit un petit script (version shell) pour faire des tests ; c'est rustique (les cas d'erreur ne sont pas gérés) mais ça a fonctionné sur mon MBA.
Bloc de code:
#!/bin/bash
#
usage () {
  echo "Usage : "
  echo "  To disconnect the network connection : $0 \"Connection name\" 0 "
  echo "  To    connect the network connection : $0 \"Connection name\" 1 \"Connection secret\""
  exit 2
}
#
if (( ($# != 2) && ($# != 3) )) ; then
  usage
fi

#
cnx_name="$1"
cnx_to_start="$2"
cnx_secret=""

if (( $cnx_to_start )) ; then
    if (( $# != 3 )) ; then
        usage
    fi
    cnx_secret="$3"
fi

#
scutil --nc show "${cnx_name}" | grep Disconnected > /dev/null
cnx_connected=$?

if (( !$cnx_connected && $cnx_to_start )) ; then
# Disconnected ==> to start
    scutil --nc start "${cnx_name}" --secret "${cnx_secret}"
elif (( $cnx_connected && !$cnx_to_start )) ; then
# Connected ==> to stop
    scutil --nc stop "${cnx_name}"
fi
J'ai enregistré ce code dans un fichier nommé "vpn_start_stop.sh" dans un certain dossier, disons $HOME/bin ($HOME, c'est la "maison") et lui ai attribué les droits d'exécution.
Le fichier est donc : $HOME/bin/vpn_start_stop.sh
Dans Terminal, après avoir enregistré le fichier, tu lui donnes le droit d'exécution comme ceci :
Bloc de code:
chmod +x $HOME/bin/vpn_start_stop.sh

Le script prend deux ou trois paramètres selon que l'on veut lancer ou arrêter la connexion.
En effet, pour arrêter la connexion, on a juste besoin de connaître son nom. Tandis que pour l'ouvrir, mon MBA m'a demandé le "secret" de la connexion VPN.
Pour lancer la connexion, je tape donc :
Bloc de code:
$HOME/bin/vpn_start_stop.sh "Ma Connexion" 1 "mon secret"
et pour l'arrêter :
Bloc de code:
$HOME/bin/vpn_start_stop.sh "Ma Connexion" 0

Reste à intégrer ces deux lignes de commande dans un script de type AppleScript ou Automator.