Add-VpnConnection: kodėl PSK sugenda ir kodėl adresas lieka senas
PowerShell išskleidžia iš anksto bendrinamą raktą dvigubose kabutėse prieš cmdlet jį išsaugant, o veikiantis tunelis laiko seną adresą, kol prisijungsite iš naujo.
Windows VPN profilis yra telefonsąsiuvinio įrašas, o PowerShell yra vienas būdas tą įrašą redaguoti. Iš šio skirtumo kyla dvi nesėkmės: iš anksto bendrinamas raktas, kuris į serverį atkeliauja jau sugadintas, ir serverio adresas, kuris atrodo atnaujintas, bet nėra tas, į kurį skambins kitas tunelis. Abu lengviau pastebėti, jei profilį traktuojate kaip išsaugotą būseną, o ne kaip įvykdytą komandą. Apžvalga seka pakeitimų tvarką: kurti, keisti, apimtis, perskaityti.
Sukurkite profilį su pažodiniu raktu
Add-VpnConnection priima L2TP iš anksto bendrinamą raktą per -L2tpPsk. PowerShell apdoroja eilutę prieš cmdlet jai gaunant, o dvigubose kabutėse dolerio ženklas pradeda kintamojo nuorodą, o backtick pradeda escape. Raktas, kuriame yra bet kuris iš jų, atkeliauja trumpesnis arba su kitu ženklu, ir profilis sėkmingai sukuriamas su neteisinga paslaptimi.
Tada nesėkmė pasirodo IPsec autentifikacijoje, kur tunelis atsisako kilti. Štai kodėl kabučių klaida taip dažnai pranešama kaip serverio pusės problema: profilis yra, vardas teisingas, o paslaptis tyliai neteisinga.
| 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 |
Vienos kabutės yra sprendimas, ir jos turi apimti visą reikšmę. Jei įrašas jau yra su blogu raktu, -Force jį pakeičia, arba pašalinkite ir sukurkite profilį iš naujo, o tada patikrinkite nauju ryšiu:
Add-VpnConnection -Name "Contoso-L2TP" -ServerAddress vpn.contoso.example -TunnelType L2tp -L2tpPsk 'n3w$ecret!2026' -AuthenticationMethod Pap -RememberCredential -Force
Laikykite tikrąją paslaptį už shell istorijos ir bendrinamų scenarijų. Skaitykite ją vykdymo metu iš patvirtintos saugyklos ir perduokite kintamąjį, o ne pažodinę reikšmę, kas visiškai išvengia kabučių problemos.
Pakeiskite adresą, tada prisijunkite iš naujo
Set-VpnConnection priima parametrus, atskirtus tarpais, o ne priskyrimo sintaksę. Rašant -ServerAddress = "203.0.113.10" perduodamas papildomas tokenas, ir cmdlet arba klysta, arba išsaugo tai, ko neketinote. Teisinga forma yra -Name "Office L2TP" -ServerAddress 203.0.113.10.
Net su teisinga sintakse pakeitimas nepasiekia jau pakelto tunelio. Užmegztas ryšys laiko adresą, į kurį skambino, kol bus atjungtas, todėl tos pačios sesijos testas nieko neįrodo apie naują reikšmę. Atsijunkite, redaguokite, prisijunkite iš naujo ir patvirtinkite kito galo adresą ryšio informacijoje.
Kai kurių savybių vietoje pakeisti negalima. Kai cmdlet atsisako, užsirašykite esamus parametrus, ištrinkite profilį ir sukurkite jį iš naujo su pataisytomis reikšmėmis, ir išsaugokite pradinius tunelio bei autentifikacijos nustatymus. Scenarijus, kuriam reikia pakeisti tik telefono numerį, gali redaguoti telefonsąsiuvinio įrašą per RAS API, o ne viską kurti iš naujo. Kad ir kokį kelią pasirinktumėte, po to patvirtinkite išsaugotas reikšmes, o ne pasitikėkite komandos tyla.
Žinokite, kurį sąsiuvinį redagavote
Vieno naudotojo profilis yra to naudotojo tinklo ryšių kataloge, o visų naudotojų profilis yra viso kompiuterio kataloge po programos duomenų medžiu. Tai skirtingi įrašai su skirtinga apimtimi, ir vieno redagavimas palieka kitą nepaliestą.
Todėl pakeitimas gali atrodyti išnykęs: scenarijus veikė su viena paskyra, o testas su kita. Naudokite -AllUserConnection, kai profilis priklauso kompiuteriui, ir tikrinkite tą pačią apimtį, kai jį perskaitote.
Perskaitykite profilį prieš testuodami
Klauskite Windows, ką jis išsaugojo, o ne ką perdavėte:
Get-VpnConnection -Name "Office L2TP" | Select-Object Name, ServerAddress, TunnelType, AuthenticationMethod
Palyginkite šią išvestį su ketinimu, tada pradėkite naują ryšį. Jei skambutis nepavyksta, prieš vėl keisdami profilį patikrinkite RAS kliento žurnalą Įvykių peržiūroje, nes žurnalas nurodo nepavykusį etapą.
Redaguodami išlaikykite autentifikacijos schemą nepaliestą. Komanda, kuri pakeičia adresą, bet pameta sertifikatą ar EAP konfigūraciją, sukelia nesėkmę, kuri atrodo nesusijusi su pakeitimu, o veikiančio profilio eksportas iš anksto duoda ką atkurti vietoj spėjimo.