Un perfil VPN de Windows és una entrada d'una agenda de telèfons, i PowerShell és una manera d'editar aquesta entrada. D'aquesta distinció en surten dues fallades: una clau prèviament compartida que arriba al servidor ja malmesa i una adreça de servidor que sembla actualitzada però no és la que marcarà el túnel següent. Totes dues es veuen més fàcilment si tracteu el perfil com a estat desat i no com una ordre que heu executat. El recorregut segueix l'ordre en què passen les edicions: crear, canviar, abast, tornar a llegir.

Creeu el perfil amb una clau literal

Add-VpnConnection accepta la clau prèviament compartida de L2TP mitjançant -L2tpPsk. PowerShell processa la cadena abans que el cmdlet la rebi, i dins de cometes dobles el signe de dòlar inicia una referència a variable mentre que un accent obert inicia un escape. Una clau que contingui qualsevol dels dos arriba més curta, o amb un caràcter diferent, i el perfil es crea correctament amb el secret equivocat.

Llavors la fallada apareix a l'autenticació IPsec, on el túnel es nega a aixecar-se. Per això un error de cometes es notifica tan sovint com un problema del costat del servidor: el perfil existeix, el nom és correcte i el secret és tranquil·lament incorrecte.

How you write itWhat PowerShell doesResult
"p@ss$word!42"Expands $word as a variableStored key is truncated
Double-quoted with an escape characterConsumes the next character as an escapeOne character disappears
'p@ss$word!42'Keeps the literal charactersStored key matches the secret

Les cometes simples són la solució, i han d'envoltar tot el valor. Si l'entrada ja existeix amb una clau dolenta, -Force la substitueix, o bé suprimiu i torneu a crear el perfil i després proveu amb una connexió nova:

Add-VpnConnection -Name "Contoso-L2TP" -ServerAddress vpn.contoso.example -TunnelType L2tp -L2tpPsk 'n3w$ecret!2026' -AuthenticationMethod Pap -RememberCredential -Force

Manteniu el secret real fora de l'historial de l'intèrpret i dels scripts compartits. Llegiu-lo en temps d'execució des del magatzem aprovat i passeu la variable en lloc del literal, cosa que evita del tot el problema de les cometes.

Canvieu l'adreça i torneu a connectar

Set-VpnConnection accepta paràmetres separats per espais, no sintaxi d'assignació. Escriure -ServerAddress = "203.0.113.10" passa un testimoni extra, i el cmdlet o bé falla o bé desa una cosa que no volíeu. La forma correcta és -Name "Office L2TP" -ServerAddress 203.0.113.10.

Fins i tot amb la sintaxi correcta, el canvi no arriba a un túnel que ja està aixecat. Una connexió establerta manté l'adreça que va marcar fins que es desconnecta, així que provar la mateixa sessió no demostra res sobre el valor nou. Desconnecteu, editeu, torneu a connectar i confirmeu l'adreça de l'igual a la informació de la connexió.

Algunes propietats no es poden canviar al lloc. Quan el cmdlet es nega, anoteu els paràmetres existents, suprimiu el perfil i torneu-lo a crear amb els valors corregits, i manteniu la configuració original del túnel i de l'autenticació. Un script que només ha de canviar el número de telèfon pot editar l'entrada de l'agenda a través de l'API RAS en lloc de recrear-ho tot. Prengueu la ruta que prengueu, confirmeu els valors desats després en lloc de confiar en el silenci de l'ordre.

Saber quina agenda heu editat

Un perfil per usuari viu al directori de connexions de xarxa d'aquell usuari, i un perfil per a tots els usuaris viu al directori de tota la màquina, sota l'arbre de dades de programa. Són entrades diferents amb abasts diferents, i editar-ne una deixa l'altra intacta.

Per això un canvi pot semblar que desapareix: l'script es va executar amb un compte i la prova amb un altre. Feu servir -AllUserConnection quan el perfil pertany a la màquina, i comproveu el mateix abast quan el torneu a llegir.

Torneu a llegir el perfil abans de provar

Pregunteu a Windows què ha desat i no què li heu passat:

Get-VpnConnection -Name "Office L2TP" | Select-Object Name, ServerAddress, TunnelType, AuthenticationMethod

Compareu aquesta sortida amb la intenció i després inicieu una connexió nova. Si la marcació falla, reviseu el registre del client RAS al Visor d'esdeveniments abans de tornar a canviar el perfil, perquè el registre indica l'etapa que ha fallat.

Manteniu intacte el disseny de l'autenticació mentre editeu. Una ordre que canvia l'adreça però deixa anar el certificat o la configuració EAP produeix una fallada que sembla no relacionada amb l'edició, i exportar el perfil que funciona abans us dona alguna cosa per restaurar en lloc d'una conjectura.

Articles relacionats