Add-VpnConnection: miks PSK katki läheb ja miks aadress paigale jääb
PowerShell laiendab jutumärkides oleva eeljagatud võtme enne, kui cmdlet selle salvestab, ja töötav tunnel hoiab vana aadressi, kuni te uuesti ühendute.
Windowsi VPN-profiil on telefoniraamatu kirje ja PowerShell on üks viis seda kirjet muuta. Sellest eristusest tuleneb kaks tõrget: eeljagatud võti, mis jõuab serverisse juba rikutuna, ja serveri aadress, mis näib uuendatud, kuid ei ole see, millele järgmine tunnel helistab. Mõlemat on lihtsam näha, kui käsitled profiili salvestatud olekuna, mitte käsuna, mille te käivitasite. Ülevaade järgib muudatuste järjekorda: loomine, muutmine, ulatus, tagasilugemine.
Loo profiil sõnasõnalise võtmega
Add-VpnConnection võtab L2TP eeljagatud võtme vastu -L2tpPsk kaudu. PowerShell töötleb stringi enne, kui cmdlet selle kätte saab, ja jutumärkide sees alustab dollarimärk muutuja viidet, samal ajal kui backtick alustab escape-i. Võti, mis sisaldab kumbagi neist, saabub lühemalt või teise märgiga ning profiil luuakse edukalt vale saladusega.
Seejärel ilmneb tõrge IPsec-autentimisel, kus tunnel keeldub üles tulemast. Seetõttu teatatakse jutumärgiveast nii sageli serveripoolse probleemina: profiil on olemas, nimi on õige ja saladus on vaikselt vale.
| 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 |
Üksikud jutumärgid on lahendus ja need peavad ümbritsema kogu väärtust. Kui kirje on juba halva võtmega olemas, asendab -Force selle, või eemaldage ja looge profiil uuesti ning seejärel testige uue ühendusega:
Add-VpnConnection -Name "Contoso-L2TP" -ServerAddress vpn.contoso.example -TunnelType L2tp -L2tpPsk 'n3w$ecret!2026' -AuthenticationMethod Pap -RememberCredential -Force
Hoidke tegelik saladus shelli ajaloost ja jagatud skriptidest eemal. Lugege seda käitusajal heakskiidetud hoidlast ja edastage muutuja sõnasõnalise väärtuse asemel, mis väldib jutumärgiprobleemi täielikult.
Muuda aadressi ja ühendu seejärel uuesti
Set-VpnConnection võtab tühikutega eraldatud parameetreid, mitte omistamissüntaksit. -ServerAddress = "203.0.113.10" kirjutamine edastab lisatõendi ja cmdlet kas annab vea või salvestab midagi, mida te ei kavatsenud. Õige vorm on -Name "Office L2TP" -ServerAddress 203.0.113.10.
Isegi õige süntaksiga ei jõua muudatus tunnelisse, mis on juba üleval. Loodud ühendus hoiab aadressi, millele ta helistas, kuni see katkeb, seega sama seansi testimine ei tõesta uue väärtuse kohta midagi. Katkestage, muutke, ühenduge uuesti ja kinnitage vastaspoole aadress ühenduse üksikasjades.
Mõnda atribuuti ei saa kohapeal muuta. Kui cmdlet keeldub, kirjutage olemasolevad parameetrid üles, kustutage profiil ja looge see parandatud väärtustega uuesti, ning hoidke algseid tunneli- ja autentimisseadeid. Skript, mis peab muutma ainult telefoninumbrit, saab telefoniraamatu kirjet muuta RAS API kaudu, selle asemel et kõike uuesti luua. Ükskõik millise tee valite, kinnitage pärast salvestatud väärtused, mitte ei usaldage käsu vaikust.
Tea, millist telefoniraamatut muutsid
Kasutajapõhine profiil asub selle kasutaja võrguühenduste kataloogis ja kõigi kasutajate profiil masinaüleses kataloogis programmiandmete puu all. Need on erinevad kirjed erineva ulatusega ning ühe muutmine jätab teise puutumata.
Seetõttu võib muudatus näida kaduvat: skript jooksis ühe kontoga ja test teisega. Kasutage -AllUserConnection, kui profiil kuulub masinale, ja kontrollige tagasilugemisel sama ulatust.
Lugege profiil enne testimist tagasi
Küsige Windowsilt, mille see salvestas, mitte mille te edastasite:
Get-VpnConnection -Name "Office L2TP" | Select-Object Name, ServerAddress, TunnelType, AuthenticationMethod
Võrrelge seda väljundit kavatsusega ja alustage siis uut ühendust. Kui valimine ebaõnnestub, kontrollige enne profiili uut muutmist sündmustevaaturis RAS-kliendi logi, sest logi nimetab ebaõnnestunud etapi.
Hoidke autentimise disain muutmise ajal terve. Käsk, mis muudab aadressi, kuid jätab sertifikaadi või EAP-konfiguratsiooni välja, tekitab tõrke, mis näib muudatusega mitteseotud, ja töötava profiili eelnev eksport annab teile taastamiseks midagi oletuse asemel.