Add-VpnConnection: чаму ламаецца PSK і чаму адрас застаецца старым
PowerShell разгортвае папярэдне агучаны ключ у двайных лапках да таго, як камандлет яго захавае, а працуючы тунель трымае стары адрас, пакуль вы не перападключыцеся.
Профіль VPN у Windows — гэта запіс у тэлефоннай кнізе, а PowerShell — адзін са спосабаў рэдагаваць гэты запіс. З гэтага адрознення вынікаюць дзве няўдачы: папярэдне агучаны ключ, які даходзіць да сервера ўжо сапсаваным, і адрас сервера, які выглядае абноўленым, але не той, на які набярэ наступны тунель. Абодва прасцей убачыць, калі разглядаць профіль як захаваны стан, а не як каманду, якую вы выканалі. Агляд ідзе ў тым парадку, у якім адбываюцца праўкі: стварыць, змяніць, вызначыць межы, прачытаць назад.
Стварыце профіль з літаральным ключом
Add-VpnConnection прымае папярэдне агучаны ключ L2TP праз -L2tpPsk. PowerShell апрацоўвае радок да таго, як камандлет яго атрымае, і ўнутры двайных лапак знак долара пачынае спасылку на зменную, а backtick пачынае escape. Ключ, які змяшчае любы з іх, даходзіць карацейшым або з іншым сімвалам, і профіль паспяхова ствараецца з няправільным сакрэтам.
Потым няўдача праяўляецца пры аўтэнтыфікацыі IPsec, дзе тунель адмаўляецца ўздымацца. Таму памылку ў лапках так часта паведамляюць як праблему на баку сервера: профіль існуе, імя правільнае, а сакрэт ціха няправільны.
| 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 |
Адзінарныя лапкі — гэта рашэнне, і яны павінны ахопліваць усё значэнне. Калі запіс ужо існуе з дрэнным ключом, -Force заменіць яго, або выдаліце і стварыце профіль нанова, а потым праверце новым злучэннем:
Add-VpnConnection -Name "Contoso-L2TP" -ServerAddress vpn.contoso.example -TunnelType L2tp -L2tpPsk 'n3w$ecret!2026' -AuthenticationMethod Pap -RememberCredential -Force
Трымайце сапраўдны сакрэт па-за гісторыяй абалонкі і агульнымі скрыптамі. Чытайце яго ў час выканання з зацверджанага сховішча і перадавайце зменную замест літаральнага значэння, што цалкам пазбягае праблемы з лапкамі.
Змяніце адрас, потым перападключыцеся
Set-VpnConnection прымае параметры, падзеленыя прабеламі, а не сінтаксіс прысваення. Запіс -ServerAddress = "203.0.113.10" перадае лішні токен, і камандлет або памыляецца, або захоўвае не тое, што вы мелі на ўвазе. Правільная форма — -Name "Office L2TP" -ServerAddress 203.0.113.10.
Нават з правільным сінтаксісам змена не даходзіць да тунеля, які ўжо ўзняты. Усталяванае злучэнне трымае адрас, на які набірала, пакуль не адключыцца, таму праверка той жа сесіі нічога не даказвае пра новае значэнне. Адключыцеся, адрэдагуйце, перападключыцеся і пацвердзіце адрас партнёра ў дэталях злучэння.
Некаторыя ўласцівасці нельга змяніць на месцы. Калі камандлет адмаўляе, запішыце існуючыя параметры, выдаліце профіль і стварыце яго нанова з выпраўленымі значэннямі, і захавайце першапачатковыя налады тунеля і аўтэнтыфікацыі. Скрыпт, якому трэба змяніць толькі нумар тэлефона, можа адрэдагаваць запіс тэлефоннай кнігі праз RAS API замест перастварэння ўсяго. Які б шлях вы ні абралі, пасля пацвердзіце захаваныя значэнні, а не давярайце маўчанню каманды.
Ведайце, якую тэлефонную кнігу вы адрэдагавалі
Профіль асобнага карыстальніка жыве ў каталогу сеткавых злучэнняў гэтага карыстальніка, а профіль усіх карыстальнікаў — у агульнамашынным каталогу пад дрэвам праграмных даных. Гэта розныя запісы з рознымі межамі, і праўка аднаго не закранае другі.
Таму змена можа выглядаць як зніклая: скрыпт выконваўся пад адным уліковым запісам, а праверка — пад іншым. Выкарыстоўвайце -AllUserConnection, калі профіль належыць машыне, і правярайце тыя ж межы, калі чытаеце яго назад.
Прачытайце профіль назад перад праверкай
Спытайце ў Windows, што ён захаваў, а не што вы перадалі:
Get-VpnConnection -Name "Office L2TP" | Select-Object Name, ServerAddress, TunnelType, AuthenticationMethod
Параўнайце гэты вывад з задумай, потым пачніце новае злучэнне. Калі набор не ўдаецца, перад чарговай зменай профілю зазірніце ў журнал кліента RAS у Event Viewer, бо журнал называе этап, які збаіў.
Трымайце схему аўтэнтыфікацыі нязменнай падчас праўкі. Каманда, якая змяняе адрас, але губляе сертыфікат або канфігурацыю EAP, дае няўдачу, якая выглядае не звязанай з праўкай, а экспарт працоўнага профілю загадзя дае тое, што можна аднавіць, замест здагадкі.