Uus VPN ilmus, autentimine töötas ja kolmanda osapoole VPN, mis oli masinas elanud kaks aastat, kadus samas taaskäivituses. Juurutuspäevikus ei mainitud seda, sest juurutuses ei tegeletud sellega. Pakett oli asendanud globaalse telefoniraamatu ja teine ühendus oli selles failis olev kirje. See on kopeerimistoiming, mis käitub täpselt nii, nagu kopeerimistoiming peab käituma.

Lahendus ei ole parem koopia. Lahendus on faili mitte kopeerida.

Mida telefoniraamat tegelikult sisaldab

Telefoniraamat on ühenduste definitsioonide konteiner, mitte profiil. Kasutajapõhised kirjed elavad kasutajaprofiilis ja kõigi kasutajate kirjed elavad masinatasemel ProgramData teel, seepärast puudutab seda faili kirjutav juurutus korraga kõiki kohalikke kasutajaid. Sama fail kannab ka teiste tarnijate loodud kirjeid ja just sealt tuleb kõrvalkahju.

Ka ühenduse definitsioon ei ole kogu lugu. Marsruudid, DNS-poliitika, usaldusväärne CA-materjal ja identiteet on ette nähtud eraldi omanike poolt.

Tehke kindlaks, milline ulatus profiili omab

Loetle mõlemad ulatused enne, kui midagi kirjutad. Get-VpnConnection tagastab praeguse kasutaja kirjed ja Get-VpnConnection -AllUserConnection tagastab masinatasemel olevad, ning sama nimi võib eksisteerida mõlemas erinevate seadetega. Otsusta, millist ulatust sinu juurutus omab, ja kirjuta see üles, sest vale ulatuse uuendamine jätab kasutaja vana profiili kaudu ühenduma, samal ajal kui sinu muudatus seisab failis, mida keegi ei loe. SYSTEM-ina töötav planeeritud ülesanne näeb samuti teistsugust profiilide kogumit kui sisselogitud kasutaja.

Omaniku nimetamine on samm, mis takistab järgmisel inseneril kogu faili kopeerimist kordamast.

Loo või uuenda nimega ühendus, mitte midagi muud

Päris Windowsi profiili puhul loob Add-VpnConnection ühe kirje ja -AllUserConnection valib masinatasemelise ulatuse. Käivita see esmalt koos -WhatIf-ga, et eelvaade jõuaks sinu transkripti, mitte kasutaja kaebusesse:

Add-VpnConnection -Name 'Office VPN' -ServerAddress 'vpn.example.com' -TunnelType Ikev2 -AuthenticationMethod Eap -EapConfigXmlStream $approvedEapXml -AllUserConnection -WhatIf

EAP XML peab tulema kuskilt seaduslikult: eksporditud töötavast võrdlusprofiilist või genereeritud sinu haldustööriistade poolt tegeliku värava jaoks. Ilma õigete serveri usalduse seadeteta loob profiil ühenduse vale asjaga või ebaõnnestub kõikjal, ja kumbki ei ole juurutamise õnnestumine.

Kui kirje on juba olemas, võrdle selle seadeid ja uuenda seda Set-VpnConnection-ga, selle asemel et see kustutada ja uuesti luua. Kustutamine on viis, kuidas töötav konfiguratsioon kaotab välju, mida keegi ei dokumenteerinud, ja viis, kuidas seotud kirjed satuvad laia puhastuse hulka.

Kontrolli, kas on teine haldussüsteem, mis paneb vana profiili järgmisel poliitika värskendamisel tagasi. Piloodid ebaõnnestuvad siin sagedamini kui cmdleti juures.

Katseta masinas, kus on juba teine VPN

Vali testmasin, kus on seotud masinatasemeline kirje, juuruta, seejärel kontrolli kolme asja: uus profiil ilmub kavandatud ulatusse, autentimine jõuab privaatse ressursini ja seotud kirje ühendub endiselt. Juuruta veel kaks korda ja kinnita, et teine käivitus muudab ainult profiili, mida see omab. See kolmas kontroll püüab paketi, mis on oma kirje suhtes idempotentne ja kõige muu suhtes hävitav.

Eemaldamine järgib sama reeglit: Remove-VpnConnection -Name 'Office VPN' -AllUserConnection viib ühe kirje pensionile ja jätab ülejäänud faili puutumata.

Hoia eelmine kavandatud konfiguratsioon saadaval, et piiratud tagasipööramine tähendaks ühe profiili uuesti importimist, mitte kogu masina oleku taastamist.

Seotud artiklid