Чему принадлежит файл .pbk Windows (а чему нет)
Файл .pbk — это телефонная книга, принадлежащая одному профилю или серверу RRAS, а не переносимая схема VPN. Читайте владельца, раздел и раскрытое свойство.
Результаты поиска выдают вам файл .pbk, имена ключей выглядят знакомо, и очевидный шаг — считать его переносимой схемой для любого VPN Windows. Но это не так. Формат принадлежит владельцу, и один и тот же ключ означает разное в зависимости от того, какой владелец его записал. Именно чтение области действия сначала не даёт упражнению по документации превратиться в неподдерживаемое редактирование.
Четыре владельца, четыре разных читателя
Четыре разных владельца пишут похожие файлы. Собственное подключение отдельного пользователя попадает в телефонную книгу текущего пользователя, а общее подключение для всех пользователей — в хранилище уровня машины, которое может читать любая учётная запись на узле. Сервер RRAS хранит конфигурацию подключения по требованию для своей роли маршрутизации, а клиент третьей стороны может хранить собственный формат, который лишь делит расширение. Одно расширение, четыре читателя, четыре набора правил.
Совпадающее отображаемое имя не делает две такие записи одной, а копирование ключа между ними предполагает, что администратор будет соблюдать то, что он никогда не документировал. Владелец также решает, кто может изменять файл: профиль отдельного пользователя — это выбор пользователя, профиль уровня машины — административное решение, а запись подключения по требованию на сервере — конфигурация маршрутизации под собственным контролем изменений. Поэтому ошибка владения — это проблема прав, прежде чем она станет проблемой формата.
Определяйте владельца по компоненту, который управляет подключением, а не по самому файлу. Файл — это артефакт; управляющий компонент определяет, какие ключи он читает и когда. Сначала прочитать артефакт, а потом администратора — это путь, на котором люди начинают править поле, которое ничто не опрашивает.
Где опубликованный формат перестаёт описывать ваш файл
В протоколе управления RRAS телефонная книга — это обычный текст, который пишет клиент управления и читает служба маршрутизации, поэтому спецификация MS-RRASM описывает параметры подключения по требованию для сервера, а не для профиля рабочего стола. Структура — это часть, которую плоское чтение уничтожает. Запись может содержать несколько блоков носителя, каждый — блоки устройств, а те — блоки отдельных номеров. Поэтому один и тот же ключ может встречаться в нескольких местах с разным значением.
Читайте ключ вместе с его разделом и примечаниями к версии и не переносите значение из одноимённого флажка в интерфейсе рабочего стола. Нахождение знакомых ключей в документе не доказывает, что он охватывает каждое поле несвязанного собственного профиля. Правила разделов также не являются разрешением переписать телефонную книгу рабочего стола в формате сервера.
| Owner | What reads the file | What a key means there |
|---|---|---|
| Per-user native connection | The user's own connection manager | A property of that user profile |
| All-user native connection | The machine-wide connection store | A property shared by everyone on the host |
| RRAS demand-dial | The RRAS service, using the documented hierarchy | A field inside a media, device or number section |
| Third-party client | That vendor's own parser | Whatever that vendor documents, if anything |
Таблица — это подспорье для чтения, а не спецификация: она говорит, к какому читателю обращаться, а читатель говорит, что означает поле. Когда этот читатель — сторонний анализатор, честный ответ может быть таким: ничто публичное вообще не документирует это поле.
Спросите Windows, а не файл
Для собственного подключения просите у Windows профиль, а не читайте файл, потому что типизированные свойства — это документированная поверхность и единственное, что изменяет поддерживаемое изменение. Две команды ниже читают два собственных хранилища по отдельности. Если профиля нет ни в одном из двух хранилищ, клиент, который им управляет, не использует собственный механизм, и ни один собственный cmdlet его не опишет.
Get-VpnConnection -Name 'Field Ops'
Get-VpnConnection -AllUserConnection | Select-Object Name, ServerAddress, TunnelType
Для развёртывания, а не для проверки, документированный путь — это управляемая настройка профиля с именованной схемой, а не числовое редактирование внутри текстового или двоичного блока. Определение профиля описывает поддерживаемые параметры; оно не предоставляет сертификаты и закрытые ключи, от которых зависит профиль. Регистрация — это отдельный процесс со своими полномочиями, и понимание ключа телефонной книги никогда не распространяло закрытый ключ. Планируйте два пути отдельно, иначе первое развёртывание сертификатов станет вторым инцидентом.
Одно свойство, затем жизненный цикл вокруг него
Сохранённое значение — не применённое значение. После одобренного изменения откройте новое подключение и проверьте маршруты, которые устанавливает профиль, политику распознавателя, которую он наследует, и операцию, которую он должен был включить. Повторное использование уже поднятой сессии проверяет старые настройки и даёт ложноотрицательный результат.
Скопируйте файл в сторону перед любой работой с необработанным файлом, потому что телефонная книга с несколькими записями — это общий артефакт, а точечное редактирование, переписывающее весь файл, имеет радиус действия больше самого изменения. Оставляйте несвязанные записи нетронутыми и сохраняйте исходную защищённую конфигурацию, пока новая не будет проверена. Если обязательное поле не документировано для владельца и выпуска, которые у вас действительно есть, запишите это как открытый вопрос поддержки. Изобретение кодировки из файла другой машины — это путь, которым работающий профиль превращается в проект отладки без единой точки отсчёта.
Дисциплина одинакова на каждом шаге: назовите владельца, назовите раздел, затем назовите поддерживаемую операцию. Всё остальное — догадка с приклеенной цитатой.