In Ordnung. Ich könnte eine Lösung haben. Ich habe versucht, den /savecred
Parameter von zu untersuchen net use
, konnte ihn aber nicht richtig zum Laufen bringen. Hier ist ein anderer Ansatz:
Ihr Problem war die Verzögerung mit Explorer nach dem Trennen mit dem VPN.
Warum also nicht die Laufwerke nach dem Trennen der Verbindung vor dem Explorer verstecken , damit dieser nicht versucht, auf sie zuzugreifen?
Es gibt einen Registrierungsschlüssel, um Laufwerke im Explorer auszublenden:
HKEY_xxx\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives
und HKEY_xxx können beides sein HKEY_LOCAL_MACHINE
und HKEY_CURRENT_USER
.
Unter diesem Beitrag finden Sie eine Zusammenfassung, welchen Wert Sie haben NoDrives
sollten.
(Fügen Sie die Nummern für die Laufwerke hinzu).
Ich habe eine kleine Batchdatei erstellt, in der Sie die Berechnungen nicht selbst durchführen müssen.
Es ist eine 'Toggle'-Batchdatei.
Führen Sie es einmal aus, um eine Verbindung zu Ihrem "Mein VPN" herzustellen.
Führen Sie es erneut aus, um die Laufwerke I, J und K zu trennen und auszublenden .
Sie können dies leicht in zwei Batchdateien aufteilen, aber Sie haben den Punkt ... Sie können diese Batchdatei auch vereinfachen, wenn Sie die Anzahl Ihrer selbst festlegen, NoDrives
anstatt den Batch die Berechnung durchführen zu lassen.
Dies muss als Administrator ausgeführt werden. (es ist möglich, automatisch zu erhöhen, aber das ist sehr weit fortgeschritten)
Wenn Sie sich selbst die Berechtigung für den Schlüssel erteilen, müssen NoDrives
Sie diesen nicht als Administrator ausführen. Öffnen Sie einfach regedit.exe
, navigieren Sie zu diesem Schlüssel, klicken Sie auf "Bearbeiten> Berechtigungen" und gewähren Sie sich "Vollzugriff" auf diesen Schlüssel.
@echo off
:: ------------------------
set MyVPN="My VPN"
:: ------------------------
rasdial | findstr %MyVPN% 1>nul
If %ERRORLEVEL% == 0 goto disconnect
:connect
echo ============================================================
echo connecting to %MyVPN%
echo ============================================================
rasdial %MyVPN%
:: This is easy. We just set 0 in NoDrives
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /T REG_DWORD /d 0 /f
goto :end
:disconnect
echo ============================================================
echo disconnecting from %MyVPN%
echo ============================================================
rasdial %MyVPN% /disconnect
:: ------------------------------------------------------------------
:: This is harder. We need to determine what value NoDrives should be
:: ------------------------------------------------------------------
Setlocal EnableDelayedExpansion
:: ------------------------
:: Set here your VPN drives
:: ------------------------
set drives='I J K'
:: ------------------------
:: Calculation to determine the value
:: ------------------------
set drive_value=1
set NoDrives=0
for %%c in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
echo.%drives% | findstr "%%c" 1>nul
if !ERRORLEVEL! == 0 set /a NoDrives+=drive_value
set /a drive_value="drive_value<<1"
)
echo Seting NoDrives to %NoDrives%
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /T REG_DWORD /d %NoDrives% /f
endlocal
:end
pause
Hinweis: Der
Windows Explorer muss geschlossen und erneut geöffnet werden, bevor die Laufwerke ausgeblendet (oder wieder sichtbar) werden.
Einstellungen für NoDrives
:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives
Decimal Hex
A: 1 1
B: 2 2
C: 4 4
D: 8 8
E: 16 10
F: 32 20
G: 64 40
H: 128 80
I: 256 100
J: 512 200
K: 1024 400
L: 2048 800
M: 4096 1000
N: 8192 2000
O: 16384 4000
P: 32768 8000
Q: 65536 10000
R: 131072 20000
S: 262144 40000
T: 524288 80000
U: 1048576 100000
V: 2097152 200000
W: 4194304 400000
X: 8388608 800000
Y: 16777216 1000000
Z: 33554432 2000000