Zkopírovaný rasphone.pbk smazal ostatní systémová VPN
Nahrazení globální telefonní knihy kvůli nasazení jedné VPN vymaže každé další připojení, které v ní je. Vlastněte pojmenovaný profil, prohlédněte si ho a pak dokažte, že ostatní přežijí.
Nová VPN se objevila, ověřování fungovalo a VPN třetí strany, která na stroji žila dva roky, zmizela ve stejném restartu. Nic v protokolu nasazení o tom nepsalo, protože se tím nasazení vůbec nezabývalo. Balíček nahradil globální telefonní knihu a to druhé připojení byl záznam v tomto souboru. Tohle je operace kopírování, která se chová přesně tak, jak se operace kopírování má chovat.
Řešení není lepší kopie. Řešení je soubor nekopírovat.
Co telefonní kniha vlastně obsahuje
Telefonní kniha je kontejner definic připojení, ne profil. Záznamy jednotlivých uživatelů žijí v profilu uživatele a záznamy všech uživatelů žijí v cestě ProgramData v rozsahu celého stroje, proto nasazení, které tento soubor zapisuje, zasáhne všechny místní uživatele najednou. Stejný soubor nese i záznamy vytvořené jinými dodavateli, a odtud pochází vedlejší škoda.
Ani definice připojení není celý příběh. Trasy, zásady DNS, materiál důvěryhodné CA a identitu zajišťují samostatní vlastníci.
Zjistěte, který rozsah profil vlastní
Než cokoli zapíšete, vypište oba rozsahy. Get-VpnConnection vrací záznamy aktuálního uživatele a Get-VpnConnection -AllUserConnection vrací ty v rozsahu celého stroje a stejný název může existovat v obou s odlišným nastavením. Rozhodněte, který rozsah vaše nasazení vlastní, a zapište to, protože aktualizace špatného rozsahu nechá uživatele připojovat se přes starý profil, zatímco vaše změna leží v souboru, který nikdo nečte. Naplánovaná úloha běžící jako SYSTEM také vidí jinou sadu profilů než přihlášený uživatel.
Pojmenování vlastníka je krok, který zabrání dalšímu inženýrovi zopakovat kopírování celého souboru.
Vytvořte nebo aktualizujte pojmenované připojení, nic jiného
Pro nativní profil Windows Add-VpnConnection vytvoří jeden záznam a -AllUserConnection zvolí rozsah celého stroje. Spusťte ho nejprve s -WhatIf, aby náhled skončil ve vašem přepisu, a ne ve stížnosti uživatele:
Add-VpnConnection -Name 'Office VPN' -ServerAddress 'vpn.example.com' -TunnelType Ikev2 -AuthenticationMethod Eap -EapConfigXmlStream $approvedEapXml -AllUserConnection -WhatIfEAP XML musí přijít odněkud legitimně: exportované z funkčního referenčního profilu nebo vygenerované vašimi nástroji správy pro skutečnou bránu. Bez správného nastavení důvěry serveru se profil buď připojí k něčemu špatnému, nebo všude selže, a ani jedno není úspěšné nasazení.
Když záznam už existuje, porovnejte jeho nastavení a aktualizujte ho pomocí Set-VpnConnection místo smazání a nového vytvoření. Smazání je způsob, jak funkční konfigurace ztratí pole, která nikdo nedokumentoval, a jak se nesouvisející záznamy chytí do širokého čištění.
Zkontrolujte, zda existuje druhý systém správy, který při příští obnově zásad vrátí starý profil. Piloty tady selhávají častěji než u samotného cmdletu.
Pilotujte na stroji, který už má jinou VPN
Vyberte testovací stroj s nesouvisejícím záznamem v rozsahu celého stroje, nasaďte a pak ověřte tři věci: nový profil se objeví v zamýšleném rozsahu, ověřování dosáhne na soukromý prostředek a nesouvisející záznam se stále připojuje. Nasaďte ještě dvakrát a potvrďte, že druhý běh mění jen profil, který vlastní. Ta třetí kontrola zachytí balíček, který je idempotentní pro svůj záznam a ničivý pro všechno ostatní.
Odebrání se řídí stejným pravidlem: Remove-VpnConnection -Name 'Office VPN' -AllUserConnection vyřadí jeden záznam a zbytek souboru nechá být.
Udržujte předchozí zamýšlenou konfiguraci dostupnou, aby omezené vrácení znamenalo znovu naimportovat jeden profil, ne obnovit stav celého stroje.