Скопійований rasphone.pbk стер інші системні VPN
Заміна глобальної телефонної книги заради встановлення одного VPN стирає кожне інше з'єднання, збережене в ній. Володійте названим профілем, перегляньте його, а потім доведіть, що решта виживає.
Новий VPN з'явився, автентифікація працювала, а VPN третьої сторони, який жив на машині два роки, зник у тому ж перезавантаженні. Ніщо в журналі розгортання про нього не згадувало, бо ніщо в розгортанні ним не займалося. Пакет замінив глобальну телефонну книгу, а те з'єднання було записом у цьому файлі. Це операція копіювання, яка поводиться точно так, як має поводитися операція копіювання.
Виправлення не в кращій копії. Воно в тому, щоб не копіювати файл.
Що насправді містить телефонна книга
Телефонна книга — це контейнер визначень з'єднань, а не профіль. Записи окремих користувачів живуть у профілі користувача, а записи всіх користувачів живуть у шляху ProgramData рівня машини, тому розгортання, яке пише цей файл, зачіпає всіх локальних користувачів одразу. Той самий файл несе й записи, створені іншими постачальниками, і звідси береться супутня шкода.
Визначення з'єднання теж не вся історія. Маршрути, політику DNS, матеріал довіреного CA та ідентичність надають окремі власники.
Визначте, якій області належить профіль
Перелічіть обидві області, перш ніж щось писати. Get-VpnConnection повертає записи поточного користувача, а Get-VpnConnection -AllUserConnection повертає записи рівня машини, і те саме ім'я може існувати в обох із різними налаштуваннями. Вирішіть, якою областю володіє ваше розгортання, і запишіть це, бо оновлення не тієї області залишає користувача підключатися через старий профіль, поки ваша зміна лежить у файлі, який ніхто не читає. Задача планувальника, що працює як SYSTEM теж бачить інший набір профілів, ніж користувач, який увійшов.
Називання власника — це крок, який не дає наступному інженеру повторити копіювання всього файлу.
Створіть або оновіть назване з'єднання, і більше нічого
Для рідного профілю Windows Add-VpnConnection створює один запис, а -AllUserConnection вибирає область рівня машини. Спершу запустіть його з -WhatIf, щоб передперегляд потрапив у ваш запис, а не в скаргу користувача:
Add-VpnConnection -Name 'Office VPN' -ServerAddress 'vpn.example.com' -TunnelType Ikev2 -AuthenticationMethod Eap -EapConfigXmlStream $approvedEapXml -AllUserConnection -WhatIfEAP XML має прийти звідкись законно: експортований із робочого еталонного профілю або створений вашими засобами керування для реального шлюзу. Без правильних налаштувань довіри до сервера профіль або підключається не до того, або зазнає невдачі всюди, і жодне з цього не є успішним розгортанням.
Якщо запис уже існує, порівняйте його налаштування й оновіть його за допомогою Set-VpnConnection замість видалення й повторного створення. Видалення — це шлях, на якому робоча конфігурація втрачає поля, які ніхто не документував, і на якому сторонні записи потрапляють під широке чищення.
Перевірте, чи немає другої системи керування, яка поверне старий профіль під час наступного оновлення політики. Пілоти частіше зриваються саме тут, а не на самому cmdlet.
Проведіть пілот на машині, де вже є інший VPN
Виберіть тестову машину зі стороннім записом рівня машини, розгорніть, а потім перевірте три речі: новий профіль з'являється в потрібній області, автентифікація досягає приватного ресурсу, і сторонній запис усе ще підключається. Розгорніть ще двічі й переконайтеся, що другий прогін змінює лише свій профіль. Ця третя перевірка ловить пакет, який ідемпотентний для власного запису й руйнівний для всього іншого.
Видалення підкоряється тому самому правилу: Remove-VpnConnection -Name 'Office VPN' -AllUserConnection знімає один запис і залишає решту файлу в спокої.
Тримайте попередню цільову конфігурацію доступною, щоб обмежений відкат означав повторний імпорт одного профілю, а не відновлення стану всієї машини.