Fehler 623 von rasdial ist ein Suchfehler und kein Netzwerkfehler: Im Telefonbuch steht kein Eintrag mit diesem Namen. Windows erwartet, dass das Profil bereits existiert, bevor ein Befehl es wählt, und der Wählhelfer legt nie selbst eines an. Arbeiten Sie die folgenden Prüfungen der Reihe nach ab, denn jede setzt voraus, dass die vorherige bestanden wurde.

Lesen Sie zuerst den Fehlercode

Die Codes nach 623 beschreiben andere Störungen, deshalb entscheidet der erste Text, den Sie sehen, über den Zweig. 691 ist eine Ablehnung von Anmeldeinformationen für ein Profil, das tatsächlich existiert, und 868 deutet meist auf die Namensauflösung für die Serveradresse hin. Nur 623 schickt Sie zurück zum Anlegen, weshalb das Wiederholen desselben Befehls selten etwas ändert.

Erfassen Sie den Exit-Status in demselben Schritt, der wählt. Der nächste Befehl im Skript überschreibt ihn, und der echte Code ist schon weg, bevor jemand das Protokoll liest.

rasdial "Office"; if ($LASTEXITCODE -ne 0) { Write-Output "failed: $LASTEXITCODE" }

Bestätigen Sie, dass der Telefonbucheintrag existiert

Fragen Sie Windows, welche Profile es wirklich gibt, bevor Sie ein weiteres hinzufügen. Das Cmdlet liefert den Namen, die Serveradresse und den aktuellen Verbindungsstatus, und ein leeres Ergebnis klärt die Frage sofort.

Windows hält Einträge je Benutzer in einer Telefonbuchdatei und Einträge für alle Benutzer in einer anderen, sodass ein Name auf zwei verschiedene Server zeigen kann. Diese Doppelung erklärt ein Skript, das den falschen Endpunkt wählt, während die geprüften Einstellungen völlig korrekt aussehen. Führen Sie beide Orte auf, bevor Sie etwas über den Namen schließen.

Get-VpnConnection -Name "Office" | Format-List Name, ServerAddress, ConnectionStatus
dir "%APPDATA%\Microsoft\Network\Connections\Pbk"
dir "%PROGRAMDATA%\Microsoft\Network\Connections\Pbk"

Legen Sie das Profil mit Add-VpnConnection an

Legen Sie den Eintrag einmal mit dem Cmdlet an, das ein natives Profil schreibt, statt mit einer Textbearbeitung. Geben Sie Serveradresse, Tunneltyp und die Authentifizierungsmethode an, die Ihr Gateway tatsächlich akzeptiert, denn ein Profil, das über das falsche Protokoll verhandelt, scheitert später mit einer Meldung, die dem Server die Schuld gibt.

Sie können weiterhin einen Verbindungsabschnitt von Hand in rasphone.pbk einfügen, aber nichts prüft diese Bearbeitung. Ein falscher Schlüssel ergibt ein Profil, das sich gegenüber nichts authentifiziert, und der Fehler, den es erzeugt, sieht wie eine entfernte Störung aus und nicht wie ein Tippfehler.

Add-VpnConnection -Name "Office" -ServerAddress vpn.corp.internal \
  -TunnelType Ikev2 -AuthenticationMethod Eap -EncryptionLevel Required

Bringen Sie die Sitzung mit dem Anmeldeinformationsspeicher in Einklang

Ein Eintrag gehört einem Benutzer oder dem Rechner, und das Zertifikat oder die gespeicherten Anmeldeinformationen dahinter sind womöglich nur aus einer Anmeldesitzung erreichbar. Eine geplante Aufgabe, die als SYSTEM läuft, ist ein anderer Client als das angemeldete Konto, und ein Dienst in Sitzung 0 hat keinen Desktop, auf dem er eine Eingabeaufforderung zeigen könnte. Wenn eine interaktive Sitzung zum ersten Mal auf ein unbekanntes Netzwerk trifft, öffnet Windows seine Abfrage zum Netzwerkstandort, und der Wählhelfer bietet keinen Schalter, um sie stumm zu schalten. Sitzungsisolierung vermeidet diese Abfrage und entfernt zugleich den Benutzerkontext, den manche Authentifizierungsmethoden verlangen.

Wählen Sie den Besitzer bewusst: eine anmeldeausgelöste Aufgabe für einen Tunnel je Benutzer oder einen Dienst für einen rechnerweiten Tunnel. Beides zu mischen und dasselbe Verhalten zu erwarten, ist der Grund, warum eine Verbindung, die von Hand funktioniert, unter Automatisierung zu scheitern beginnt.

Lassen Sie die automatische Auslösung, wie Sie sie vorgefunden haben

Windows kann einen Tunnel selbst aufbauen, wenn eine Anwendung oder eine Netzwerkbedingung passt, und ein Trennen kann das Profil in die Liste der deaktivierten Einträge für die automatische Auslösung aufnehmen. Der nächste automatische Versuch findet dann nie statt, lange nachdem das verantwortliche Skript beendet ist. Ein Auftrag, der bedingungslos trennt, bricht damit das Immer-an-Verhalten für jeden anderen Benutzer dieser Maschine. Dieser Nebeneffekt ist im Aufgabenprotokoll unsichtbar, und genau das macht ihn teuer.

Notieren Sie den Profilzustand, bevor der Auftrag läuft, und stellen Sie ihn so wieder her, wie Sie ihn vorgefunden haben, statt den Tunnel standardmäßig abzureißen. Die Auslösung wieder zu aktivieren ist eine Richtlinienänderung, behandeln Sie sie also als bewussten Schritt und nicht als Aufräumen.

Zwei Grenzen überstehen jede Menge Skriptarbeit. rasdial kann Erfolg melden, während der Dienst hinter dem Tunnel noch unerreichbar ist, testen Sie also die Ressource, die Sie wirklich brauchen. Ein Profil, das eine Smartcard, eine Push-Bestätigung oder eine Browser-Anmeldung verlangt, hat keinen unbeaufsichtigten Weg, und ein menschlicher Besitzer bleibt Teil des Entwurfs.

Ähnliche Artikel