Add-VpnConnection: zakaj se PSK pokvari in zakaj naslov ostane star
PowerShell razširi vnaprej deljeni ključ v dvojnih narekovajih, preden ga cmdlet shrani, in delujoč tunel obdrži stari naslov, dokler se znova ne povežete.
Profil VPN v Windows je vnos v telefonskem imeniku, PowerShell pa je eden od načinov urejanja tega vnosa. Iz te razlike izhajata dve napaki: vnaprej deljeni ključ, ki na strežnik prispe že poškodovan, in naslov strežnika, ki je videti posodobljen, a ni tisti, ki ga bo poklical naslednji tunel. Oboje je lažje videti, če profil obravnavate kot shranjeno stanje in ne kot ukaz, ki ste ga izvedli. Pregled sledi vrstnemu redu sprememb: ustvarjanje, sprememba, obseg, ponovno branje.
Ustvarite profil z dobesednim ključem
Add-VpnConnection sprejme vnaprej deljeni ključ L2TP prek -L2tpPsk. PowerShell obdela niz, preden ga cmdlet prejme, in znotraj dvojnih narekovajev znak za dolar začne sklic na spremenljivko, medtem ko backtick začne escape. Ključ, ki vsebuje katero od tega, prispe krajši ali z drugim znakom, in profil se uspešno ustvari z napačno skrivnostjo.
Nato se napaka pokaže pri preverjanju pristnosti IPsec, kjer tunel noče vstati. Zato se napaka v narekovajih tako pogosto prijavi kot težava na strani strežnika: profil obstaja, ime je pravilno, skrivnost pa je tiho napač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 |
Enojni narekovaji so rešitev in morajo zajeti celotno vrednost. Če vnos že obstaja s slabim ključem, ga -Force zamenja, ali pa profil odstranite in ustvarite znova ter nato preizkusite z novo povezavo:
Add-VpnConnection -Name "Contoso-L2TP" -ServerAddress vpn.contoso.example -TunnelType L2tp -L2tpPsk 'n3w$ecret!2026' -AuthenticationMethod Pap -RememberCredential -Force
Pravo skrivnost hranite zunaj zgodovine lupine in deljenih skriptov. Berite jo med izvajanjem iz odobrenega skladišča in posredujte spremenljivko namesto dobesedne vrednosti, kar se popolnoma izogne težavi z narekovaji.
Spremenite naslov in se nato znova povežite
Set-VpnConnection sprejema s presledki ločene parametre, ne sintakse dodeljevanja. Zapis -ServerAddress = "203.0.113.10" posreduje dodaten žeton in cmdlet bodisi javi napako bodisi shrani nekaj, česar niste nameravali. Pravilna oblika je -Name "Office L2TP" -ServerAddress 203.0.113.10.
Tudi s pravilno sintakso sprememba ne doseže tunela, ki je že vzpostavljen. Vzpostavljena povezava obdrži naslov, na katerega je klicala, dokler ni prekinjena, zato preizkus iste seje ne dokaže ničesar o novi vrednosti. Prekinite, uredite, znova se povežite in potrdite naslov nasprotne strani v podrobnostih povezave.
Nekaterih lastnosti ni mogoče spremeniti na mestu. Ko cmdlet zavrne, zapišite obstoječe parametre, izbrišite profil in ga znova ustvarite s popravljenimi vrednostmi, ter ohranite prvotne nastavitve tunela in preverjanja pristnosti. Skript, ki mora spremeniti le telefonsko številko, lahko uredi vnos v telefonskem imeniku prek API RAS, namesto da bi vse ustvaril znova. Ne glede na pot, ki jo izberete, nato potrdite shranjene vrednosti, namesto da bi zaupali tišini ukaza.
Vedite, kateri imenik ste uredili
Profil za posameznega uporabnika živi v mapi omrežnih povezav tega uporabnika, profil za vse uporabnike pa v mapi za celoten računalnik pod drevesom programa. To so različni vnosi z različnim obsegom in urejanje enega pusti drugega nedotaknjenega.
Zato je sprememba lahko videti, kot da je izginila: skript se je izvajal pod enim računom, preizkus pa pod drugim. Uporabite -AllUserConnection, ko profil pripada računalniku, in pri ponovnem branju preverite isti obseg.
Preberite profil, preden preizkusite
Vprašajte Windows, kaj je shranil, ne kaj ste posredovali:
Get-VpnConnection -Name "Office L2TP" | Select-Object Name, ServerAddress, TunnelType, AuthenticationMethod
Primerjajte ta izhod z namenom in nato začnite novo povezavo. Če klicanje ne uspe, pred ponovno spremembo profila preverite dnevnik odjemalca RAS v pregledovalniku dogodkov, ker dnevnik navede fazo, ki ni uspela.
Med urejanjem ohranite zasnovo preverjanja pristnosti nedotaknjeno. Ukaz, ki spremeni naslov, a spusti potrdilo ali konfiguracijo EAP, povzroči napako, ki je videti nepovezana z urejanjem, izvoz delujočega profila vnaprej pa vam da nekaj za obnovitev namesto ugibanja.