Wozu eine Windows-.pbk-Datei gehört (und wozu nicht)
Eine .pbk-Datei ist ein Telefonbuch, das einem Profil oder einem RRAS-Server gehört, kein portables VPN-Schema. Lesen Sie den Eigentümer, den Abschnitt und die offengelegte Eigenschaft.
Suchergebnisse liefern Ihnen eine .pbk-Datei, die Schlüsselnamen wirken vertraut, und der naheliegende Schritt ist, sie als portables Schema für jedes Windows-VPN zu behandeln. Das ist sie nicht. Das Format gehört einem Eigentümer, und derselbe Schlüssel bedeutet je nach Eigentümer etwas anderes. Wer zuerst den Geltungsbereich liest, verhindert, dass eine Dokumentationsübung zu einer nicht unterstützten Änderung wird.
Vier Eigentümer, vier verschiedene Leser
Vier verschiedene Eigentümer schreiben Dateien, die gleich aussehen. Eine native Verbindung pro Benutzer landet im Telefonbuch des aktuellen Benutzers, eine Verbindung für alle Benutzer dagegen in einem maschinenweiten Speicher, den jedes Konto auf dem Host lesen kann. Ein RRAS-Server hält die Wählkonfiguration für seine eigene Routingrolle, und ein Client eines Drittanbieters kann ein eigenes Format pflegen, das lediglich die Dateiendung teilt. Dieselbe Endung, vier Leser, vier Regelsätze.
Ein übereinstimmender Anzeigename macht zwei dieser Einträge nicht zum selben Eintrag, und das Kopieren eines Schlüssels zwischen ihnen setzt voraus, dass ein Verwalter etwas beachtet, das er nie dokumentiert hat. Der Eigentümer entscheidet auch, wer die Datei ändern darf: ein Profil pro Benutzer ist eine Benutzerentscheidung, ein maschinenweites Profil eine administrative Entscheidung, und ein Wähl-Eintrag auf einem Server ist Routingkonfiguration unter eigener Änderungskontrolle. Damit ist ein Eigentümerfehler ein Berechtigungsproblem, bevor er ein Formatproblem wird.
Bestimmen Sie den Eigentümer anhand der Komponente, die die Verbindung verwaltet, nicht anhand der Datei selbst. Eine Datei ist ein Artefakt; die verwaltende Komponente legt fest, welche Schlüssel sie liest und wann. Erst das Artefakt und dann den Verwalter zu lesen, ist der Weg, auf dem Menschen ein Feld bearbeiten, das niemand abfragt.
Wo das veröffentlichte Format aufhört, Ihre Datei zu beschreiben
Im RRAS-Verwaltungsprotokoll ist das Telefonbuch Klartext, den ein Verwaltungsclient schreibt und der Routingdienst liest; deshalb beschreibt MS-RRASM-Spezifikation Wählverbindungseinstellungen für einen Server und nicht für ein Desktopprofil. Die Struktur ist der Teil, den ein flaches Lesen zerstört. Ein Eintrag kann mehrere Medienblöcke enthalten, jeder davon Geräteblöcke, die wiederum Blöcke für einzelne Nummern enthalten. Derselbe Schlüssel kann daher an mehreren Stellen mit unterschiedlicher Bedeutung auftauchen.
Lesen Sie einen Schlüssel zusammen mit seinem Abschnitt und seinen Versionshinweisen und übertragen Sie keinen Wert aus einem gleichnamigen Kontrollkästchen einer Desktop-Oberfläche. Vertraute Schlüssel im Dokument zu finden belegt nicht, dass es jedes Feld eines unabhängigen nativen Profils abdeckt. Die Abschnittsregeln sind auch keine Erlaubnis, ein Desktop-Telefonbuch im Serverformat neu zu schreiben.
| 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 |
Die Tabelle ist eine Lesehilfe und keine Spezifikation: Sie sagt, welchen Leser Sie befragen müssen, und der Leser sagt, was das Feld bedeutet. Ist dieser Leser ein Parser eines Drittanbieters, kann die ehrliche Antwort sein, dass nichts Öffentliches das Feld überhaupt dokumentiert.
Fragen Sie Windows, nicht die Datei
Fragen Sie bei einer nativen Verbindung Windows nach dem Profil, statt die Datei zu lesen, denn die typisierten Eigenschaften sind die dokumentierte Oberfläche und das Einzige, was eine unterstützte Änderung anpasst. Die beiden Befehle unten lesen die beiden nativen Speicher getrennt. Liegt das Profil in keinem der beiden Speicher, nutzt der verwaltende Client nicht den nativen Mechanismus, und kein natives Cmdlet wird es beschreiben.
Get-VpnConnection -Name 'Field Ops'
Get-VpnConnection -AllUserConnection | Select-Object Name, ServerAddress, TunnelType
Für die Bereitstellung und nicht für die Prüfung ist der dokumentierte Weg eine verwaltete Profileinstellung mit benanntem Schema, keine numerische Änderung in einem Text- oder Binärblob. Eine Profildefinition beschreibt unterstützte Einstellungen; sie stellt nicht die Zertifikate und privaten Schlüssel bereit, von denen das Profil abhängt. Die Registrierung ist ein eigener Vorgang mit eigener Autorität, und das Verstehen eines Telefonbuchschlüssels hat noch nie einen privaten Schlüssel verteilt. Planen Sie die beiden Wege getrennt, sonst wird die erste Zertifikatsausrollung zum zweiten Vorfall.
Eine Eigenschaft, dann der Lebenszyklus darum herum
Ein gespeicherter Wert ist kein angewendeter Wert. Öffnen Sie nach einer genehmigten Änderung eine neue Verbindung und prüfen Sie die Routen, die das Profil installiert, die Resolver-Richtlinie, die es erbt, und den Vorgang, den es ermöglichen sollte. Eine bereits bestehende Sitzung weiterzuverwenden prüft die alten Einstellungen und erzeugt ein falsches Negativ.
Kopieren Sie die Datei beiseite, bevor Sie am Rohdateiinhalt arbeiten, denn ein Telefonbuch mit mehreren Einträgen ist ein gemeinsames Artefakt, und eine gezielte Änderung, die die ganze Datei neu schreibt, hat einen größeren Wirkungsradius als die Änderung. Lassen Sie unabhängige Einträge unangetastet und behalten Sie die ursprüngliche geschützte Konfiguration, bis die neue geprüft ist. Ist ein erforderliches Feld für den Eigentümer und die Version, die Sie tatsächlich haben, nicht dokumentiert, halten Sie das als offene Supportfrage fest. Eine Kodierung aus der Datei eines anderen Rechners zu erfinden, ist der Weg, auf dem ein funktionierendes Profil zu einem Debugging-Projekt ohne Bezugspunkt wird.
Die Disziplin ist bei jedem Schritt dieselbe: den Eigentümer benennen, den Abschnitt benennen und dann den unterstützten Vorgang benennen. Alles andere ist eine Vermutung mit angehefteter Quellenangabe.