Wyniki wyszukiwania podają ci plik .pbk, nazwy kluczy wyglądają znajomo, a oczywistym krokiem jest potraktowanie go jako przenośnego schematu dla dowolnego VPN Windows. Tak nie jest. Format należy do właściciela, a ten sam klucz znaczy co innego w zależności od tego, który właściciel go zapisał. Właśnie przeczytanie zakresu najpierw chroni przed tym, by ćwiczenie dokumentacyjne zmieniło się w nieobsługiwaną edycję.

Czterej właściciele, czterech różnych czytelników

Czterech różnych właścicieli zapisuje pliki, które wyglądają podobnie. Rodzime połączenie dla jednego użytkownika trafia do książki telefonicznej bieżącego użytkownika, a połączenie dla wszystkich użytkowników trafia do magazynu na poziomie komputera, który może odczytać każde konto na hoście. Serwer RRAS przechowuje konfigurację połączeń na żądanie dla własnej roli routingu, a klient innej firmy może przechowywać własny format, który jedynie dzieli rozszerzenie. To samo rozszerzenie, czterech czytelników, cztery zestawy reguł.

Zgodna nazwa wyświetlana nie czyni dwóch takich wpisów jednym, a kopiowanie klucza między nimi zakłada, że administrator uszanuje coś, czego nigdy nie udokumentował. Właściciel decyduje też, kto może zmieniać plik: profil dla jednego użytkownika to wybór użytkownika, profil na poziomie komputera to decyzja administracyjna, a wpis połączenia na żądanie na serwerze to konfiguracja routingu pod własną kontrolą zmian. Dzięki temu błąd własności jest problemem uprawnień, zanim stanie się problemem formatu.

Ustal właściciela, patrząc na składnik, który zarządza połączeniem, a nie na sam plik. Plik jest artefaktem; składnik zarządzający określa, które klucze czyta i kiedy. Czytanie najpierw artefaktu, a potem administratora to droga, na której ludzie zaczynają edytować pole, o które nic nie pyta.

Gdzie opublikowany format przestaje opisywać twój plik

W protokole zarządzania RRAS książka telefoniczna to zwykły tekst, który zapisuje klient zarządzania, a odczytuje usługa routingu, dlatego specyfikacja MS-RRASM opisuje ustawienia połączeń na żądanie dla serwera, a nie dla profilu pulpitu. Struktura to część, którą płaskie czytanie niszczy. Wpis może zawierać kilka bloków mediów, każdy z blokami urządzeń, które z kolei zawierają bloki dla pojedynczych numerów. Dlatego ten sam klucz może pojawić się w więcej niż jednym miejscu z innym znaczeniem.

Czytaj klucz razem z jego sekcją i uwagami do wersji, i nie przenoś wartości z pola wyboru o podobnej nazwie w interfejsie pulpitu. Znalezienie znanych kluczy w dokumencie nie dowodzi, że obejmuje on każde pole niepowiązanego profilu rodzimego. Reguły sekcji również nie są zgodą na przepisanie książki telefonicznej pulpitu w formacie serwera.

OwnerWhat reads the fileWhat a key means there
Per-user native connectionThe user's own connection managerA property of that user profile
All-user native connectionThe machine-wide connection storeA property shared by everyone on the host
RRAS demand-dialThe RRAS service, using the documented hierarchyA field inside a media, device or number section
Third-party clientThat vendor's own parserWhatever that vendor documents, if anything

Tabela jest pomocą w czytaniu, a nie specyfikacją: mówi, którego czytelnika zapytać, a czytelnik mówi, co znaczy pole. Gdy tym czytelnikiem jest parser innej firmy, uczciwa odpowiedź może brzmieć, że nic publicznego nie dokumentuje tego pola w ogóle.

Pytaj Windows, nie pliku

W przypadku połączenia rodzimego poproś Windows o profil, zamiast czytać plik, ponieważ typowane właściwości są udokumentowaną powierzchnią i jedyną rzeczą, którą zmienia obsługiwana zmiana. Dwa poniższe polecenia czytają dwa rodzime magazyny osobno. Jeśli profilu nie ma w żadnym z obu magazynów, klient, który nim zarządza, nie używa mechanizmu rodzimego i żadne rodzime cmdlet go nie opisze.

Get-VpnConnection -Name 'Field Ops'
Get-VpnConnection -AllUserConnection | Select-Object Name, ServerAddress, TunnelType

Do wdrożenia, a nie do inspekcji, udokumentowaną drogą jest zarządzane ustawienie profilu z nazwanym schematem, a nie edycja liczbowa wewnątrz bloku tekstowego lub binarnego. Definicja profilu opisuje obsługiwane ustawienia; nie dostarcza certyfikatów i kluczy prywatnych, od których profil zależy. Rejestracja to osobny proces z własnym uprawnieniem, a zrozumienie klucza książki telefonicznej nigdy nie rozdzieliło klucza prywatnego. Zaplanuj obie ścieżki osobno, inaczej pierwsze wdrożenie certyfikatów stanie się drugim incydentem.

Jedna właściwość, potem cykl życia wokół niej

Zapisana wartość nie jest wartością zastosowaną. Po zatwierdzonej zmianie otwórz nowe połączenie i sprawdź trasy instalowane przez profil, politykę resolwera, którą dziedziczy, oraz operację, którą miał umożliwić. Ponowne użycie sesji, która już była podniesiona, testuje stare ustawienia i daje fałszywie negatywny wynik.

Skopiuj plik na bok przed jakąkolwiek pracą na surowym pliku, ponieważ książka telefoniczna z kilkoma wpisami jest współdzielonym artefaktem, a edycja punktowa, która przepisuje cały plik, ma większy zasięg niż sama zmiana. Zachowaj nienaruszone niepowiązane wpisy i przechowuj oryginalną chronioną konfigurację, dopóki nowa nie zostanie zweryfikowana. Jeśli wymagane pole nie jest udokumentowane dla właściciela i wersji, które faktycznie masz, zapisz to jako otwarte pytanie do pomocy technicznej. Wymyślanie kodowania z pliku innej maszyny to sposób, w jaki działający profil staje się projektem debugowania bez żadnego punktu odniesienia.

Dyscyplina jest ta sama na każdym kroku: nazwij właściciela, nazwij sekcję, a potem nazwij obsługiwaną operację. Wszystko inne to domysł z przypiętym cytatem.

Powiązane artykuły