La nova VPN va aparèixer, l'autenticació funcionava, i una VPN de tercers que duia dos anys a la màquina va desaparèixer en el mateix reinici. Res del registre de desplegament no en va parlar, perquè res del desplegament no s'hi referia. El paquet havia substituït la llibreta de telèfons global, i l'altra connexió era una entrada d'aquell fitxer. Aquesta és una operació de còpia que es comporta exactament com ha de comportar-se una operació de còpia.

La solució no és una còpia millor. És no copiar el fitxer.

Què conté realment la llibreta de telèfons

Una llibreta de telèfons és un contenidor de definicions de connexió, no un perfil. Les entrades per usuari viuen sota el perfil d'usuari, i les entrades de tots els usuaris viuen sota el camí ProgramData d'abast de màquina, i per això un desplegament que escriu aquest fitxer toca tots els usuaris locals alhora. El mateix fitxer també porta entrades creades per altres proveïdors, i d'aquí ve el dany col·lateral.

Una definició de connexió tampoc no és tota la història. Les rutes, la política DNS, el material de CA de confiança i la identitat els aprovisionen propietaris separats.

Esbrineu quin àmbit posseeix el perfil

Llista tots dos àmbits abans d'escriure res. Get-VpnConnection retorna les entrades de l'usuari actual i Get-VpnConnection -AllUserConnection retorna les d'abast de màquina, i el mateix nom pot existir en tots dos amb paràmetres diferents. Decidiu quin àmbit posseeix el vostre desplegament i anoteu-ho, perquè actualitzar l'àmbit equivocat deixa l'usuari connectant-se pel perfil antic mentre el vostre canvi queda en un fitxer que ningú no llegeix. Una tasca programada que s'executa com a SYSTEM també veu un conjunt de perfils diferent del de l'usuari que ha iniciat sessió.

Posar nom al propietari és el pas que evita que el següent enginyer repeteixi la còpia del fitxer sencer.

Creeu o actualitzeu la connexió amb nom, res més

Per a un perfil natiu de Windows, Add-VpnConnection crea una entrada, i -AllUserConnection tria l'àmbit de màquina. Executeu-lo primer amb -WhatIf, perquè la previsualització arribi al vostre registre i no a una queixa d'usuari:

Add-VpnConnection -Name 'Office VPN' -ServerAddress 'vpn.example.com' -TunnelType Ikev2 -AuthenticationMethod Eap -EapConfigXmlStream $approvedEapXml -AllUserConnection -WhatIf

L'EAP XML ha de venir d'algun lloc legítim: exportat d'un perfil de referència que funcioni, o generat per les vostres eines de gestió per a la passarel·la real. Sense paràmetres correctes de confiança del servidor, el perfil o es connecta a la cosa equivocada o falla a tot arreu, i cap de les dues coses no és un èxit de desplegament.

Quan l'entrada ja existeix, compareu-ne els paràmetres i actualitzeu-la amb Set-VpnConnection en lloc d'esborrar-la i tornar-la a crear. Esborrar és com una configuració que funciona perd camps que ningú no va documentar, i com entrades no relacionades queden atrapades en una neteja àmplia.

Comproveu si hi ha un segon sistema de gestió que tornarà a posar el perfil antic en la propera actualització de política. Els pilots fallen aquí més sovint que al cmdlet.

Proveu-ho en una màquina que ja tingui una altra VPN

Trieu una màquina de prova amb una entrada no relacionada d'abast de màquina, desplegueu-hi, i després verifiqueu tres coses: el perfil nou apareix a l'àmbit previst, l'autenticació arriba a un recurs privat, i l'entrada no relacionada encara es connecta. Desplegueu-ho dues vegades més i confirmeu que la segona execució només canvia el perfil que posseeix. Aquesta tercera comprovació atrapa un paquet que és idempotent per a la seva entrada i destructiu per a tota la resta.

L'eliminació segueix la mateixa regla: Remove-VpnConnection -Name 'Office VPN' -AllUserConnection retira una entrada i deixa la resta del fitxer en pau.

Manteniu disponible la configuració prevista anterior, perquè una reversió limitada signifiqui reimportar un perfil en lloc de restaurar tot l'estat de la màquina.

Articles relacionats