Beim Einsatz des Securepoint OpenVPN Clients (Version 1.0.3) unter Windows 10 kommt es unter Umständen dazu, dass der für die Verbindung nötige TAP-Adapter nicht gefunden werden kann. Das Problem trat bei mir nur auf, wenn der Client erst nach dem Creators Fall Update installiert wird. Das gleiche Problem kann allerdings auch auftauchen, wenn man den „originalen“ OpenVPN-Client nutzt und das meistens mit schöner Regelmäßigkeit immer wieder nach einem „großen“ Windows-Update.
Folgende Fehlermeldung taucht dann im Client auf:
There are no TAP-Windows adapters on this system. You should be able to create a TAP-Windows adapter by going to Start -> All Programs -> TAP-Windows -> Utilities -> Add a new TAP-Windows virtual ethernet adapter.
Exiting due to fatal error
Der Adapter ist aber definitv angelegt, denn in der Netzwerkadapter-Übersicht wird er angezeigt.
Schuld daran sind geänderte Einträge bzgl. des Adapters in der Registry. Die entsprechenden Einträge findet man in einem der Unterpunkte in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\.
Unter Windows XP sah es dort noch so aus:
Nach der Installation auf einem aktuellen Windows 10 wurde „TAP0901“ hingegen bei den beiden Einträgen „MatchingDeviceID“ und „ComponentID“ groß geschrieben. Dadurch findet der Securepoint- oder der OpenVPN-Client den Adapter nicht mehr, da dieser nach der klein geschriebenen Variante sucht -.-
Nachdem man die beiden Einträge wieder klein geschrieben hat lässt sich die Verbindung wieder aufbauen.
Quelle:
https://support.securepoint.de/viewtopic.php?t=6270
Automatische Lösung?
Das nervige an diesem Problem ist, dass es bei jedem großen Windows-Update regelmäßigwieder auftaucht und sich die entsprechenden Benutzer bei einem melden und über das nicht funktionierende VPN beschweren. Im besten Fall kann man sich dann irgendwie auf das betroffene Gerät aufschalten, z. B. mit TeamViewer, oder die Person muss vorbeikommen.
Abhilfe kann hier folgendes Powershell-Skript schaffen, welches den passenden Adapter sucht und die beiden Einträge korrigiert:
1 2 3 4 5 6 7 8 9 10 11 |
$keys = Get-ChildItem -Path 'Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\' foreach ($key in $keys){ $path = "Registry::" + $key $property = Get-ItemProperty -Path $path if ($property.ComponentId -eq 'TAP0901'){ Set-ItemProperty -Path $path -Name ComponentId -Value tap0901 Set-ItemProperty -Path $path -Name MatchingDeviceID -Value tap0901 } } |
Dieses muss einfach bei jedem Start oder jeder Anmeldung des Benutzers ausgeführt werden und rückt die beiden Properties wieder gerade.