En Windows VPN-profil er en oppføring i en telefonbok, og PowerShell er én måte å redigere den oppføringen på. Av denne forskjellen følger to feil: en forhåndsdelt nøkkel som ankommer serveren allerede skadet, og en serveradresse som virker oppdatert, men som ikke er adressen den neste tunnelen ringer. Begge er enklere å oppdage dersom du betrakter profilen som lagret tilstand og ikke som en kommando du har kjørt. Gjennomgangen følger rekkefølgen endringene skjer i: opprette, endre, omfang, lese tilbake.

Bygg profilen med en bokstavelig nøkkel

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

Deretter viser feilen seg ved IPsec-autentisering, der tunnelen nekter å reise seg. Det er grunnen til at en anførselstegnfeil så ofte rapporteres som et server-side problem: profilen finnes, navnet stemmer, og hemmeligheten er stille og rolig 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. Dersom 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 virkelige hemmeligheten utenfor shell-historikken og delte skript. Les den ved kjøring fra det godkjente lageret og send variabelen istedenfor det bokstavelige, noe som helt unngår anførselstegnproblemet.

Endre adressen, og koble så 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 hadde tenkt. Den riktige formen er -Name "Office L2TP" -ServerAddress 203.0.113.10.

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

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

Vet 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. Dette 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 som den forsvinner: skriptet kjørte under én konto, og testen under 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, istedenfor hva du sendte:

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

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

Hold autentiseringsdesignet intakt mens du redigerer. En kommando som endrer adressen, men som 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 istedenfor en gjetning.

Relaterte artikler