# script VPN en erreur après MàJ Sierra



## OmegaPoint (30 Novembre 2016)

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"
> ...



je commence vraiment a sécher... j'espère que vous pourrez éclairer ma lanterne! 
merci et bonnes fêtes


----------



## bompi (30 Novembre 2016)

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" ?


----------



## bompi (30 Novembre 2016)

En cherchant un peu, je constate que le script semblait déjà en panne avec El Capitan pour certains utilisateurs.


----------



## bompi (30 Novembre 2016)

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


----------



## OmegaPoint (30 Novembre 2016)

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


----------



## bompi (30 Novembre 2016)

On peut insérer des commandes dans un script AppleScript ou Automator.


----------



## bompi (30 Novembre 2016)

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.

```
#!/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 :

```
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 :

```
$HOME/bin/vpn_start_stop.sh "Ma Connexion" 1 "mon secret"
```
et pour l'arrêter :

```
$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.


----------

