Route nach erfolgreicher VPN-Verbindung in Windows 10 automatisch hinzufügen

2671
OscarAkaElvis

Ich versuche auf meinem W10, nach einer erfolgreichen VPN-Verbindung einen automatischen "Routen" -Befehl auszuführen. Ich versuchte es auf der Grundlage dieser kurzen Beschreibung hier die für W7 ist aber scheint so ähnlich, aber ich kann es nicht funktionieren.

  • Meine VPN-Verbindung ist in Ordnung. Es kann jederzeit problemlos verbunden und getrennt werden.
  • Mein Routenbefehl ist in Ordnung. Wenn ich es nach dem Anschließen des VPNs manuell starte, funktioniert alles einwandfrei.
  • Natürlich verwendet meine VPN-Verbindung das Remote-Gateway nicht als Standard-Gateway. Ich möchte "Split-Tunneling" machen.

Ich habe nachgeforscht und das Windows-Ereignis 20225 ist auf W10 (RAS Connection Establishement) immer noch das gleiche. Das ist also richtig ... warum wird der Routenbefehl nicht ausgelöst? Ich kann die 20225-Ereignisse mit RasClient als Quelle im Anwendungsereignis-Viewer nach dem Anschließen des VPN sehen.

Bevor ich all dieses Zeug ausprobierte, habe ich natürlich versucht, die Route mit dem -pBefehl parameter on route "dauerhaft" zu erstellen. Dies funktioniert jedoch nicht, da die VPN-Schnittstelle nicht vorhanden ist, wenn diese Route bei jedem Start hinzugefügt wird eine gültige Option. Also muss geplant werden.

Ich habe die Aufgabe mit erhöhten Berechtigungen mit demselben Ergebnis ausgeführt und das Kontrollkästchen "Mit erhöhten Berechtigungen ausführen" markiert. Die Aufgabe erscheint als "nie gestartet". Und wenn ich versuche, es manuell zu starten, wird "Taskplaner-Dienst ist nicht verfügbar. Taskplaner versucht, die Verbindung erneut herzustellen". Der Aufgabenplaner funktioniert jedoch einwandfrei. Andere Aufgaben können geplant oder manuell ausgeführt werden und funktionieren.

Hat jemand dies erfolgreich erreicht?

EDIT Ich habe versucht, den Auslöseteil zu ändern, um "Basic" in "Benutzerdefiniert" zu ändern, und ich habe einen XPath-Filter in das XML-Feld eingefügt, um nach der Ereignis-ID zu suchen: <QueryList> <Query Id="0" Path="Application"> <Select Path="Application">*[System[(EventID=20225)]]</Select> </Query> </QueryList>

Es hat auch nicht funktioniert.

Das Problem ist das gleiche. Die Aufgabe wird als "Nie gestartet" angezeigt.

EDIT2 Mir ist im Event-Viewer aufgefallen, dass nach einer erfolgreichen VPN-Verbindung (id 20225) immer ein anderes Event (id 900) vorliegt, das damit in Verbindung gebracht werden kann ... vielleicht ist alles eingerichtet, aber etwas blockiert den Auslöser ... ich ziehe weiß es nicht Schauen Sie sich diesen Screenshot an (leider ist der Screenshot in Spanisch):

event

5
Wenn Sie Windows 10 ausführen, sollten Sie die Verwendung des PowerShell Add-vpnConnectionRoute im Modul VPNClient in Betracht ziehen. tmh vor 6 Jahren 0

2 Antworten auf die Frage

2
OscarAkaElvis

Endlich konnte ich es nicht schaffen ... so entschied ich mich traurig, nach einer Alternative zu suchen. Ich habe eine Batch-Datei mit Rasdial erstellt, die wie ein Zauber wirkt. Das einzige "Problem" ist, dass der Befehl route mit erhöhten Berechtigungen gestartet werden muss. Das liegt daran, dass ich ein Argument runasmit /savedcredeinlegte, das nur einmal nach dem Passwort fragt und dann automatisch funktioniert. Für den vpn können Sie dann Ihr Passwort eingeben (klar!) Oder set mypass="*"jedes Mal nach dem Passwort fragen lassen.

Hier ist mein Code:

@echo off  cls echo.  REM put your VPN connection name here set myvpn="Your VPN name" REM put your user here set myuser="foo" REM put your pass here. Leave * for asking set mypass="testpass" REM put your win admin user here set winadmin="administrator" REM put your network route here set network="192.168.8.0" REM put your network mask here set mask="255.255.255.0" REM put your gateway mask here set gateway="192.168.1.1"  ipconfig | find /i %myvpn% > nul 2>&1  if %ERRORLEVEL% == 0 (  echo "VPN already connected. Disconnecting..." echo. rasdial %myvpn% /disconnect runas.exe /user:%winadmin% /savedcred "route delete %network% mask %mask% %gateway%"  ) else if %ERRORLEVEL% == 1 (  echo "VPN not connected. Connecting..." echo. rasdial %myvpn% %myuser% %mypass% runas.exe /user:%winadmin% /savedcred "route add %network% mask %mask% %gateway%" ) 

Ich hoffe, das hilft jemandem.

1
Vorona

Unter Windows 10 verfügt Powershell über ein Cmdlet, das Routen für die VPN-Verbindung hinzufügt und bei einer Trennung der VPN-Verbindung wieder entfernt: Add-VpnConnectionRoute . Es funktioniert, ohne die Schnittstellen-ID angeben zu müssen.

Die grundlegende Syntax sieht so aus:

Add-VpnConnectionRoute -ConnectionName "VPN-Verbindungsname" -DestinationPrefix 10.0.0.0/16

Nach Eingabe dieses Befehls werden die Routen automatisch erstellt / entfernt, wenn das VPN verbunden / getrennt wird.