Windowsin VPN-profiili on puhelinluettelon merkintä, ja PowerShell on yksi tapa muokata sitä merkintää. Tästä erosta seuraa kaksi epäonnistumista: jaettu avain, joka saapuu palvelimelle jo vahingoittuneena, ja palvelimen osoite, joka näyttää päivitetyltä mutta ei ole se, johon seuraava tunneli soittaa. Molemmat on helpompi nähdä, kun kohtelet profiilia tallennettuna tilana etkä komentona, jonka suoritit. Käsittely etenee siinä järjestyksessä kuin muutokset tapahtuvat: luo, muuta, laajuus, lue takaisin.

Rakenna profiili kirjaimellisella avaimella

Add-VpnConnection ottaa L2TP-jaetun avaimen vastaan -L2tpPsk-parametrin kautta. PowerShell käsittelee merkkijonon ennen kuin cmdlet saa sen, ja lainausmerkkien sisällä dollarimerkki aloittaa muuttujaviittauksen ja backtick aloittaa escape-jakson. Avain, joka sisältää kumman tahansa, saapuu lyhyempänä tai eri merkillä, ja profiili luodaan onnistuneesti väärällä salaisuudella.

Sitten epäonnistuminen näkyy IPsec-todennuksessa, jossa tunneli kieltäytyy nousemasta. Siksi lainausmerkkivirheestä raportoidaan niin usein palvelinpuolen ongelmana: profiili on olemassa, nimi on oikein ja salaisuus on hiljaa väärä.

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

Yksinkertaiset lainausmerkit ovat ratkaisu, ja niiden on ympäröitävä koko arvo. Jos merkintä on jo olemassa huonolla avaimella, -Force korvaa sen, tai poista ja luo profiili uudelleen ja testaa sitten uudella yhteydellä:

Add-VpnConnection -Name "Contoso-L2TP" -ServerAddress vpn.contoso.example -TunnelType L2tp -L2tpPsk 'n3w$ecret!2026' -AuthenticationMethod Pap -RememberCredential -Force

Pidä todellinen salaisuus poissa komentotulkin historiasta ja jaetuista skripteistä. Lue se ajon aikana hyväksytystä säilöstä ja välitä muuttuja kirjaimellisen arvon sijaan, mikä välttää lainausmerkkiongelman kokonaan.

Muuta osoitetta ja yhdistä sitten uudelleen

Set-VpnConnection ottaa välilyönnillä erotettuja parametreja, ei sijoitusyntaksia. -ServerAddress = "203.0.113.10" kirjoittaminen välittää ylimääräisen tokenin, ja cmdlet joko antaa virheen tai tallentaa jotain, mitä et tarkoittanut. Oikea muoto on -Name "Office L2TP" -ServerAddress 203.0.113.10.

Oikeallakin syntaksilla muutos ei saavuta tunnelia, joka on jo ylhäällä. Muodostettu yhteys pitää sen osoitteen, johon se soitti, kunnes se katkeaa, joten saman istunnon testaaminen ei todista mitään uudesta arvosta. Katkaise, muokkaa, yhdistä uudelleen ja vahvista vastapuolen osoite yhteyden tiedoista.

Joitakin ominaisuuksia ei voi muuttaa paikallaan. Kun cmdlet kieltäytyy, kirjoita olemassa olevat parametrit muistiin, poista profiili ja luo se uudelleen korjatuilla arvoilla, ja säilytä alkuperäiset tunnelin ja todennuksen asetukset. Skripti, jonka tarvitsee muuttaa vain puhelinnumero, voi muokata puhelinluettelon merkintää RAS API:n kautta sen sijaan, että rakentaisi kaiken uudelleen. Valitsitpa minkä tahansa reitin, vahvista tallennetut arvot jälkeenpäin sen sijaan, että luottaisit komennon hiljaisuuteen.

Tiedä, mitä puhelinluetteloa muokkasit

Käyttäjäkohtainen profiili sijaitsee kyseisen käyttäjän verkkoyhteyksien hakemistossa ja kaikkien käyttäjien profiili koneenlaajuisessa hakemistossa ohjelmatietojen puun alla. Ne ovat eri merkintöjä eri laajuuksilla, ja toisen muokkaaminen jättää toisen koskemattomaksi.

Siksi muutos voi näyttää katoavan: skripti ajettiin yhdellä tilillä ja testi toisella. Käytä -AllUserConnection, kun profiili kuuluu koneelle, ja tarkista sama laajuus, kun luet sen takaisin.

Lue profiili takaisin ennen testaamista

Kysy Windowsilta, mitä se tallensi, älä mitä välitit:

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

Vertaa tulostetta aikomukseesi ja aloita sitten uusi yhteys. Jos valinta epäonnistuu, tarkista RAS-asiakkaan loki Tapahtumien katselusta ennen kuin muutat profiilia uudelleen, sillä loki nimeää vaiheen, joka epäonnistui.

Pidä todennuksen rakenne ehjänä muokatessasi. Komento, joka muuttaa osoitteen mutta pudottaa varmenteen tai EAP-määrityksen, tuottaa epäonnistumisen, joka näyttää liittymättömältä muokkaukseen, ja toimivan profiilin vienti etukäteen antaa sinulle jotain palautettavaa arvauksen sijaan.

Aiheeseen liittyvät artikkelit