Add-VpnConnection: zašto se PSK kvari i zašto adresa ostaje stara
PowerShell raširi unapred deljeni ključ u navodnicima pre nego što ga cmdlet sačuva, a aktivan tunel zadržava staru adresu dok se ponovo ne povežete.
Windows VPN profil je zapis u telefonskom imeniku, a PowerShell je jedan od načina da uredite taj zapis. Iz te razlike proizlaze dva kvara: unapred deljeni ključ koji na server stiže već oštećen i adresa servera koja izgleda ažurirano, ali nije ona koju će sledeći tunel birati. Oboje je lakše uočiti ako profil tretirate kao sačuvano stanje, a ne kao naredbu koju ste izvršili. Pregled prati redosled kojim se izmene dešavaju: kreiranje, izmena, obuhvat, ponovno čitanje.
Napravite profil sa doslovnim ključem
Add-VpnConnection prihvata unapred deljeni L2TP ključ kroz -L2tpPsk. PowerShell obrađuje niz pre nego što ga cmdlet primi, a unutar dvostrukih navodnika znak dolara počinje referencu na promenljivu dok backtick počinje escape. Ključ koji sadrži bilo šta od toga stiže kraći ili sa drugim znakom, a profil se uspešno kreira sa pogrešnom tajnom.
Zatim se kvar pojavljuje pri IPsec autentifikaciji, gde tunel odbija da se podigne. Zato se greška u navodnicima tako često prijavljuje kao problem na strani servera: profil postoji, ime je ispravno, a tajna je tiho pogrešna.
| 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 |
Jednostruki navodnici su rešenje i moraju obuhvatiti celu vrednost. Ako zapis već postoji sa lošim ključem, -Force ga zamenjuje, ili uklonite i ponovo napravite profil pa testirajte novom vezom:
Add-VpnConnection -Name "Contoso-L2TP" -ServerAddress vpn.contoso.example -TunnelType L2tp -L2tpPsk 'n3w$ecret!2026' -AuthenticationMethod Pap -RememberCredential -Force
Držite pravu tajnu izvan istorije ljuske i deljenih skripti. Čitajte je u vreme izvršavanja iz odobrenog skladišta i prosleđujte promenljivu umesto doslovne vrednosti, što potpuno izbegava problem sa navodnicima.
Promenite adresu, pa se ponovo povežite
Set-VpnConnection prima parametre odvojene razmakom, a ne sintaksu dodele. Pisanje -ServerAddress = "203.0.113.10" prosleđuje dodatni token, pa cmdlet ili prijavi grešku ili sačuva nešto što niste nameravali. Ispravan oblik je -Name "Office L2TP" -ServerAddress 203.0.113.10.
Čak i sa ispravnom sintaksom promena ne stiže do tunela koji je već podignut. Uspostavljena veza zadržava adresu koju je birala dok se ne prekine, pa testiranje iste sesije ništa ne dokazuje o novoj vrednosti. Prekinite vezu, uredite, ponovo se povežite i potvrdite adresu druge strane u detaljima veze.
Neka svojstva se ne mogu menjati na mestu. Kada cmdlet odbije, zabeležite postojeće parametre, obrišite profil i ponovo ga napravite sa ispravljenim vrednostima, i zadržite izvorne postavke tunela i autentifikacije. Skripta koja treba da promeni samo telefonski broj može urediti zapis u telefonskom imeniku kroz RAS API umesto da sve pravi iznova. Koji god put odaberete, potvrdite sačuvane vrednosti nakon toga umesto da verujete tišini naredbe.
Znajte koji ste imenik uredili
Profil po korisniku živi u direktorijumu mrežnih veza tog korisnika, a profil za sve korisnike u direktorijumu na nivou računara pod stablom programskih podataka. To su različiti zapisi sa različitim obuhvatom, a uređivanje jednog ostavlja drugi netaknutim.
Zato promena može izgledati kao da je nestala: skripta je radila pod jednim računom, a test pod drugim. Koristite -AllUserConnection kada profil pripada računaru, i proverite isti obuhvat kada ga čitate ponovo.
Pročitajte profil ponovo pre testiranja
Pitajte Windows šta je sačuvao, a ne šta ste prosledili:
Get-VpnConnection -Name "Office L2TP" | Select-Object Name, ServerAddress, TunnelType, AuthenticationMethod
Uporedite taj izlaz sa namerom, pa pokrenite novu vezu. Ako biranje ne uspe, proverite zapisnik RAS klijenta u pregledaču događaja pre nego što ponovo promenite profil, jer zapisnik imenuje fazu koja je pala.
Sačuvajte nacrt autentifikacije netaknutim tokom uređivanja. Naredba koja promeni adresu ali ispusti sertifikat ili EAP konfiguraciju stvara kvar koji izgleda nepovezano sa izmenom, a izvoz radnog profila unapred vam daje nešto za vraćanje umesto nagađanja.