En kopiert rasphone.pbk slettet de andre systemdekkende VPN-ene
Å erstatte den globale telefonboken for å levere én enkelt VPN sletter hver annen tilkobling som ligger i den. Eie en navngitt profil, forhåndsvis den, og bevis så at resten overlever.
Den nye VPN-en dukket opp, autentiseringen virket, og en tredjeparts-VPN som hadde bodd på maskinen i to år forsvant i samme omstart. Ingenting i utrullingsloggen nevnte det, fordi ingenting i utrullingen tok seg av det. Pakken hadde erstattet den globale telefonboken, og den andre tilkoblingen var en oppføring i den filen. Dette er en kopieringsoperasjon som oppfører seg nøyaktig slik en kopieringsoperasjon skal oppføre seg.
Løsningen er ikke en bedre kopi. Den er å ikke kopiere filen.
Hva telefonboken faktisk inneholder
En telefonbok er en beholder for tilkoblingsdefinisjoner, ikke en profil. Oppføringer per bruker ligger under brukerprofilen, og oppføringer for alle brukere ligger under den maskinomfattende ProgramData-stien, og derfor treffer en utrulling som skriver den filen hver lokal bruker på én gang. Samme fil bærer også oppføringer laget av andre leverandører, og det er der følgeskaden kommer fra.
En tilkoblingsdefinisjon er heller ikke hele historien. Ruter, DNS-policy, klarert CA-materiale og identitet leveres av separate eiere.
Finn ut hvilket omfang som eier profilen
List begge omfangene før du skriver noe. Get-VpnConnection returnerer oppføringene til den gjeldende brukeren og Get-VpnConnection -AllUserConnection returnerer dem på maskinnivå, og samme navn kan finnes i begge med ulike innstillinger. Bestem hvilket omfang utrullingen din eier og skriv det ned, for å oppdatere feil omfang lar brukeren koble til via den gamle profilen mens endringen din sitter i en fil ingen leser. En planlagt oppgave som kjører som SYSTEM ser også et annet sett med profiler enn den innloggede brukeren.
Å navngi eieren er trinnet som hindrer den neste ingeniøren i å gjenta kopieringen av hele filen.
Opprett eller oppdater den navngitte tilkoblingen, ikke noe annet
For en innebygd Windows-profil lager Add-VpnConnection én oppføring, og -AllUserConnection velger det maskinomfattende omfanget. Kjør den først med -WhatIf, slik at forhåndsvisningen havner i transkriptet ditt og ikke i en klage fra en bruker:
Add-VpnConnection -Name 'Office VPN' -ServerAddress 'vpn.example.com' -TunnelType Ikev2 -AuthenticationMethod Eap -EapConfigXmlStream $approvedEapXml -AllUserConnection -WhatIfEAP XML må komme fra et sted som er legitimt: eksportert fra en fungerende referanseprofil, eller generert av administrasjonsverktøyene dine for den faktiske porten. Uten riktige innstillinger for servertillit kobler profilen seg enten til feil ting eller feiler overalt, og ingen av delene er en vellykket utrulling.
Når oppføringen allerede finnes, sammenlign innstillingene og oppdater den med Set-VpnConnection i stedet for å slette og lage den på nytt. Sletting er måten en fungerende konfigurasjon mister felt ingen har dokumentert, og måten urelaterte oppføringer blir fanget i en bred opprydding.
Sjekk om det finnes et andre styringssystem som setter den gamle profilen tilbake ved neste policy-oppdatering. Piloter feiler her oftere enn ved selve cmdleten.
Pilotér på en maskin som allerede har en annen VPN
Velg en testmaskin med en urelatert oppføring på maskinnivå, rull ut, og verifiser så tre ting: den nye profilen dukker opp i det tiltenkte omfanget, autentiseringen når en privat ressurs, og den urelaterte oppføringen kobler fortsatt til. Rull ut to ganger til og bekreft at den andre kjøringen bare endrer profilen den eier. Den tredje kontrollen fanger en pakke som er idempotent for sin egen oppføring og ødeleggende for alt annet.
Fjerning følger samme regel: Remove-VpnConnection -Name 'Office VPN' -AllUserConnection pensjonerer én oppføring og lar resten av filen være i fred.
Hold den forrige tiltenkte konfigurasjonen tilgjengelig, slik at en avgrenset tilbakerulling betyr å importere én profil på nytt i stedet for å gjenopprette en hel maskintilstand.