En Windows VPN-profil er en oppføring i en telefonbok, og PowerShell er én måte å redigere den oppføringen på. To feil følger av det skillet: en forhåndsdelt nøkkel som kommer til serveren allerede skadet, og en serveradresse som ser oppdatert ut, men ikke er den neste tunnel ringer til. Begge er lettere å se hvis du behandler profilen som lagret tilstand og ikke som en kommando du kjørte. Gjennomgangen følger rekkefølgen endringene skjer i: opprett, endre, omfang, les tilbake.

Bygg profilen med en bokstavelig nøkkel

Add-VpnConnection tar imot den forhåndsdelte L2TP-nøkkelen gjennom -L2tpPsk. PowerShell behandler strengen før cmdleten mottar den, og inne i doble anførselstegn starter et dollartegn en variabelreferanse mens en backtick starter en escape. En nøkkel som inneholder en av dem, kommer kortere eller med et annet tegn, og profilen opprettes med den gale hemmeligheten.

Deretter viser feilen seg ved IPsec-godkjenning, der tunnelen nekter å reise seg. Derfor rapporteres en anførselstegnfeil så ofte som et problem på serversiden: profilen finnes, navnet er riktig, og hemmeligheten er stille feil.

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

Enkle anførselstegn er løsningen, og de må omslutte hele verdien. Hvis oppføringen allerede finnes med en dårlig nøkkel, erstatter -Force den, eller fjern og opprett profilen på nytt og test deretter med en ny tilkobling:

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

Hold den ekte hemmeligheten utenfor shell-historikken og delte skript. Les den ved kjøring fra det godkjente lageret og send variabelen i stedet for det bokstavelige, noe som helt unngår anførselstegnproblemet.

Endre adressen, og koble deretter til på nytt

Set-VpnConnection tar mellomromsadskilte parametere, ikke tilordningssyntaks. Å skrive -ServerAddress = "203.0.113.10" sender et ekstra token, og cmdleten gir enten en feil eller lagrer noe du ikke mente. Den riktige formen er -Name "Office L2TP" -ServerAddress 203.0.113.10.

Selv med riktig syntaks når endringen ikke en tunnel som allerede er oppe. En etablert tilkobling beholder adressen den ringte til, til den kobles fra, så testing av samme økt beviser ingenting om den nye verdien. Koble fra, rediger, koble til på nytt, og bekreft motpartens adresse i tilkoblingsdetaljene.

Noen egenskaper kan ikke endres på stedet. Når cmdleten avviser, noter de eksisterende parameterne, slett profilen og opprett den på nytt med de rettede verdiene, og behold de opprinnelige tunnel- og godkjenningsinnstillingene. Et skript som bare skal endre telefonnummeret, kan redigere telefonbokoppføringen gjennom RAS API i stedet for å gjenopprette alt. Uansett hvilken vei du velger, bekreft de lagrede verdiene etterpå i stedet for å stole på kommandos stillhet.

Vit hvilken telefonbok du redigerte

En profil per bruker ligger i den brukerens mappe for nettverkstilkoblinger, og en profil for alle brukere ligger i den maskinomfattende mappen under programdatatreet. Det er forskjellige oppføringer med forskjellig omfang, og redigering av den ene lar den andre være urørt.

Derfor kan en endring se ut til å forsvinne: skriptet kjørte som én konto, og testen som en annen. Bruk -AllUserConnection når profilen tilhører maskinen, og kontroller samme omfang når du leser den tilbake.

Les profilen tilbake før du tester

Spør Windows hva den lagret, i stedet for hva du sendte:

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

Sammenlign den utdataen med hensikten, og start deretter en ny tilkobling. Hvis oppringingen mislykkes, sjekk RAS-klientloggen i Event Viewer før du endrer profilen igjen, for loggen navngir trinnet som feilet.

Hold godkjenningsdesignet intakt mens du redigerer. En kommando som endrer adressen, men dropper sertifikatet eller EAP-konfigurasjonen, gir en feil som virker urelatert til redigeringen, og eksport av den fungerende profilen på forhånd gir deg noe å gjenopprette i stedet for en gjetning.

Relaterte artikler