Add-VpnConnection: waarom die PSK breek en die adres bly staan
PowerShell brei n vooraf gedeelde sleutel in dubbelaanhalingstekens uit voordat die cmdlet dit stoor, en n lopende tonnel hou die ou adres tot jy weer aansluit.
n Windows-VPN-profiel is n telefoonboekinskrywing, en PowerShell is een manier om daardie inskrywing te wysig. Twee mislukkings volg uit die onderskeid: n vooraf gedeelde sleutel wat reeds beskadig by die bediener aankom, en n bedieneradres wat opgedateer lyk maar nie die een is wat die volgende tonnel skakel nie. Albei is makliker om te sien wanneer jy die profiel as gestoorde toestand behandel eerder as as n opdrag wat jy uitgevoer het. Die deurloop volg die volgorde waarin die wysigings gebeur: skep, verander, omvang, teruglees.
Bou die profiel met n letterlike sleutel
Add-VpnConnection aanvaar die L2TP-voorafgedeelde sleutel deur -L2tpPsk. PowerShell verwerk die string voordat die cmdlet dit ontvang, en binne dubbelaanhalingstekens begin n dollarteken n veranderlikeverwysing terwyl n agterkwaaltjie n ontsnapping begin. n Sleutel wat enigeen van die twee bevat, kom korter aan, of met n ander karakter, en die profiel word suksesvol met die verkeerde geheim geskep.
Die mislukking verskyn dan by IPsec-verifikasie, waar die tonnel weier om op te kom. Daarom word n aanhalingfout so dikwels as n bedienerkantprobleem gerapporteer: die profiel bestaan, die naam is reg, en die geheim is stilweg verkeerd.
| How you write it | What PowerShell does | Result |
|---|---|---|
| "p@ss$word!42" | Expands $word as a variable | Stored key is truncated |
| Double-quoted with an escape character | Consumes the next character as an escape | One character disappears |
| 'p@ss$word!42' | Keeps the literal characters | Stored key matches the secret |
Enkelaanhalingstekens is die oplossing, en hulle moet die hele waarde omring. As die inskrywing reeds met n slegte sleutel bestaan, vervang -Force dit, of verwyder en herskep die profiel en toets dan met n nuwe verbinding:
Add-VpnConnection -Name "Contoso-L2TP" -ServerAddress vpn.contoso.example -TunnelType L2tp -L2tpPsk 'n3w$ecret!2026' -AuthenticationMethod Pap -RememberCredential -Force
Hou die werklike geheim uit die skulpgeskiedenis en gedeelde skripte. Lees dit tydens uitvoering uit die goedgekeurde stoor en gee die veranderlike deur eerder as die letterlike waarde, wat ook die aanhalingprobleem heeltemal vermy.
Verander die adres, en sluit dan weer aan
Set-VpnConnection neem spasiegeskeide parameters, nie toekenningsintaksis nie. Om -ServerAddress = "203.0.113.10" te skryf, gee n ekstra token deur, en die cmdlet gee of n fout of stoor iets wat jy nie bedoel het nie. Die korrekte vorm is -Name "Office L2TP" -ServerAddress 203.0.113.10.
Selfs met die regte sintaksis bereik die verandering nie n tonnel wat reeds op is nie. n Gevestigde verbinding hou die adres wat dit geskakel het totdat dit ontkoppel, so om dieselfde sessie te toets bewys niks oor die nuwe waarde nie. Ontkoppel, wysig, sluit weer aan, en bevestig die eweknie-adres in die verbindingsbesonderhede.
Sommige eienskappe kan nie in plek verander word nie. Wanneer die cmdlet weier, let op die bestaande parameters, verwyder die profiel en skep dit weer met die regte waardes, en behou die oorspronklike tonnel- en verifikasie-instellings. n Skrip wat net die telefoonnommer hoef te verander, kan die telefoonboekinskrywing deur die RAS-API wysig eerder as om alles te herskep. Watter roete jy ook al volg, bevestig die gestoorde waardes daarna eerder as om op die opdrag se stilte te vertrou.
Weet watter telefoonboek jy gewysig het
n Profiel per gebruiker woon in daardie gebruiker se netwerkverbindingsgids, en n profiel vir alle gebruikers woon in die masjienwye een onder die programdata-boom. Dit is verskillende inskrywings met verskillende omvange, en om een te wysig laat die ander onaangeraak.
Daarom kan n verandering lyk of dit verdwyn: die skrip het as een rekening geloop, en die toets as n ander. Gebruik -AllUserConnection wanneer die profiel aan die masjien behoort, en kontroleer dieselfde omvang wanneer jy dit teruglees.
Lees die profiel terug voordat jy toets
Vra Windows wat dit gestoor het eerder as wat jy deurgegee het:
Get-VpnConnection -Name "Office L2TP" | Select-Object Name, ServerAddress, TunnelType, AuthenticationMethod
Vergelyk daardie uitset met die bedoeling en begin dan n nuwe verbinding. As die skakeling misluk, kyk in die RAS-kliëntlog in Event Viewer voordat jy die profiel weer verander, want die log noem die stadium wat gefaal het.
Hou die verifikasie-ontwerp ongeskonde terwyl jy wysig. n Opdrag wat die adres verander maar die sertifikaat of die EAP-konfigurasie laat val, lewer n mislukking wat onverwant aan die wysiging lyk, en om die werkende profiel eers te uitvoer gee jou iets om te herstel eerder as n raaiskoot.