Den nye VPN dukkede op, godkendelsen virkede, og en tredjeparts-VPN, der havde boet på maskinen i to år, forsvandt i den samme genstart. Intet i udrulningsloggen nævnte det, fordi intet i udrulningen forholdt sig til det. Pakken havde erstattet den globale telefonbog, og den anden forbindelse var en post i den fil. Dette er en kopieringsoperation, der opfører sig præcis, som en kopieringsoperation skal.

Løsningen er ikke en bedre kopi. Den er ikke at kopiere filen.

Hvad telefonbogen faktisk indeholder

En telefonbog er en beholder med forbindelsesdefinitioner, ikke en profil. Poster pr. bruger ligger under brugerprofilen, og poster for alle brugere ligger under den maskindækkende ProgramData-sti, og derfor rammer en udrulning, der skriver den fil, alle lokale brugere på én gang. Den samme fil bærer også poster oprettet af andre leverandører, og det er der, følgeskaden kommer fra.

En forbindelsesdefinition er heller ikke hele historien. Ruter, DNS-politik, betroet CA-materiale og identitet leveres af separate ejere.

Find ud af, hvilket omfang der ejer profilen

List begge omfang, før du skriver noget. Get-VpnConnection returnerer den aktuelle brugers poster, og Get-VpnConnection -AllUserConnection returnerer dem på maskinniveau, og det samme navn kan findes i begge med forskellige indstillinger. Beslut, hvilket omfang din udrulning ejer, og skriv det ned, fordi opdatering af det forkerte omfang efterlader brugeren med at forbinde via den gamle profil, mens din ændring ligger i en fil, ingen læser. En planlagt opgave, der kører som SYSTEM ser også et andet sæt profiler end den bruger, der er logget ind.

At navngive ejeren er det skridt, der forhindrer den næste ingeniør i at gentage kopieringen af hele filen.

Opret eller opdater den navngivne forbindelse, intet andet

For en oprindelig Windows-profil opretter Add-VpnConnection en post, og -AllUserConnection vælger omfanget på maskinniveau. Kør den først med -WhatIf, så forhåndsvisningen lander i din transskription i stedet for i en brugerklage:

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

EAP-XML skal komme et legitimt sted fra: eksporteret fra en fungerende referenceprofil eller genereret af dine administrationsværktøjer til den faktiske gateway. Uden korrekte indstillinger for serverbetroethed forbinder profilen enten til det forkerte eller fejler overalt, og ingen af delene er en vellykket udrulning.

Når posten allerede findes, sammenlign dens indstillinger og opdater den med Set-VpnConnection i stedet for at slette og genskabe den. Sletning er måden, hvorpå en fungerende konfiguration mister felter, ingen har dokumenteret, og måden, hvorpå uvedkommende poster bliver fanget i en bred oprydning.

Tjek for et andet styresystem, der vil sætte den gamle profil tilbage ved næste politikopdatering. Piloter fejler her oftere end ved cmdlet'en.

Kør pilot på en maskine, der allerede har en anden VPN

Vælg en testmaskine med en uvedkommende post på maskinniveau, udrul, og bekræft derefter tre ting: den nye profil vises i det tilsigtede omfang, godkendelsen når en privat ressource, og den uvedkommende post forbinder stadig. Udrul to gange mere, og bekræft at den anden kørsel kun ændrer den profil, den ejer. Den tredje kontrol fanger en pakke, der er idempotent for sin egen post og destruktiv for alt andet.

Fjernelse følger samme regel: Remove-VpnConnection -Name 'Office VPN' -AllUserConnection pensionerer en post og lader resten af filen være i fred.

Hold den tidligere tilsigtede konfiguration tilgængelig, så en afgrænset tilbagerulning betyder at genimportere en profil i stedet for at gendanne en hel maskintilstand.

Relaterede artikler