Scriptez un profil VPN P2S Azure pour chaque utilisateur Windows
Add-VpnConnection lève une erreur EapConfigXmlStream lorsque les commutateurs reçoivent des booléens. Corrigez la portée et la route manquante avant de déployer sur un parc.
Distribuer un paquet Azure point à site fonctionne pour cinq portables et s'effondre à cinquante. Le chemin scripté comporte deux pièges qui coûtent chacun un après-midi : une erreur de paramètre qui ressemble à une défaillance de certificat, et une route que la connexion n'installe jamais, même quand tout le reste est correct. Aucun des deux ne se corrige en retéléchargeant le paquet client. Faites les vérifications ci-dessous dans l'ordre et arrêtez-vous à la première qui échoue.
Je garde l'ordre fixe parce que chaque étape suppose que la précédente est vraie.
1. Corrigez la portée du profil avant le premier appareil
Un profil pour tous les utilisateurs vit sur la machine et apparaît dans chaque session. Un profil par utilisateur suit un compte et conserve ses identifiants dans le contexte de ce compte. Choisissez-en un et tenez-vous-y, car une machine portant les deux affiche deux entrées du même nom, et les utilisateurs se connectent à celle qui apparaît en premier. Changer de portée plus tard signifie retirer d'abord l'ancien profil plutôt que de le modifier sur place.
Les profils pour tous les utilisateurs conviennent aux appareils partagés et aux bornes où personne ne se connecte avec un compte personnel. C'est le mauvais choix par défaut lorsque le certificat est délivré par personne, car un profil à l'échelle de la machine ne peut pas présenter un identifiant qui appartient à quelqu'un d'autre. Écrivez le choix dans le registre de déploiement avant que le deuxième portable existe.
2. Passez les commutateurs comme des commutateurs
Add-VpnConnection prend des paramètres de commutateur qui sont soit présents, soit absents. Leur passer $true déclenche une erreur EapConfigXmlStream, ce qui explique pourquoi tant de fils à ce sujet finissent par inspecter des chaînes de certificats qui n'ont jamais été le problème.
Add-VpnConnection -Name "Contoso P2S" `
-ServerAddress "azuregateway-00000000-0000-0000-0000-000000000000.cloudapp.net" `
-AllUserConnection -UseWinLogonCredential -RememberCredential `
-TunnelType Automatic -EncryptionLevel Required -AuthenticationMethod MSChapv2L'adresse de passerelle ci-dessus est illustrative ; prenez la vraie dans le paquet téléchargé et gardez-la entre guillemets. -AllUserConnection exige une session élevée, et le profil qu'il crée est à l'échelle de la machine même si vous avez exécuté la commande en tant qu'administrateur. Lisez le jeu de paramètres avec Get-Help Add-VpnConnection -Parameter * avant d'ajouter d'autres commutateurs.
3. Ajoutez la route que l'adaptateur n'ajoute pas
L'adaptateur point à site installe une route pour le pool d'adresses client et rien d'autre.
Un préfixe de réseau virtuel hors de ce pool reste injoignable tandis que le tunnel signale encore Connected, ce qui est la panne la plus déroutante de ce flux de travail. Ajoutez la route explicitement après la réussite de la connexion, et pointez-la vers l'adresse d'interface reçue par l'adaptateur plutôt que vers le nom public de la passerelle. Cette adresse vient d'ipconfig après la connexion, et elle change d'une session à l'autre.
route add 10.0.0.0 mask 255.255.0.0 10.0.1.5
route print -4 | findstr /c:"10.0.0.0"Supprimez la route à la déconnexion pour qu'un prochain saut obsolète ne puisse pas plus tard envoyer le trafic dans un trou noir. Traitez la commande comme un écart local documenté : si une future version du client ajoute la route elle-même, votre ligne devient un doublon qui concurrence le prochain saut propre au paquet.
4. Vérifiez en tant qu'utilisateur standard
Une session d'administrateur masque les erreurs de portée, car l'élévation fournit parfois un identifiant que l'utilisateur réel n'aurait pas.
Connectez-vous en tant que non-administrateur, connectez-vous via le profil et testez un service privé au lieu d'internet public. Confirmez que le profil apparaît dans Get-VpnConnection -AllUserConnection, que l'état atteint Connected et que la route ajoutée pointe vers l'adresse actuelle de l'adaptateur. Ensuite, mettez la machine en veille, réveillez-la et comparez à nouveau ipconfig.
5. Retirez proprement un déploiement raté
Remove-VpnConnection avec -AllUserConnection et -Force supprime le profil à l'échelle de la machine. Force compte car un profil connecté refuse sinon la suppression, et un profil à moitié supprimé est plus difficile à diagnostiquer qu'une réinstallation propre.
Conservez le nom du profil, l'adresse de passerelle et les routes ajoutées dans les notes de déploiement. Ces trois valeurs sont ce dont un appel au support a besoin avant que quiconque ouvre un ticket, et elles sont aussi ce dont le prochain script a besoin lorsque l'adresse de passerelle change. Ajoutez la version du paquet client à la même note, car le comportement de la route appartient à ce paquet et non à Windows.