Добре. У мене може бути рішення. Я спробував розглянути /savecred
параметр, net use
але не міг змусити його працювати належним чином, ось ось інший підхід:
Вашою проблемою була затримка з Explorer після відключення з VPN.
То чому б не приховати диски від Провідника після відключення, щоб він не намагався отримати доступ до них.
Існує ключ реєстру для приховування дисків від Провідника:
HKEY_xxx\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives
і HKEY_xxx можуть бути HKEY_LOCAL_MACHINE
і HKEY_CURRENT_USER
.
Під цією публікацією розміщено резюме того, яке значення NoDrives
має містити.
(додайте номери накопичувачів).
Я створив невеликий пакетний файл, де вам не доведеться робити розрахунки самостійно.
Це 'перемикач'-пакетного файлу.
Запустіть його один раз, щоб підключитися до "Моєї VPN".
Запустіть його знову , щоб відключити і приховати диски I, J і K .
Ви можете легко розділити це на дві пакетні файли, але ви зрозумієте ... Ви також можете спростити цей пакетний файл, якщо ви встановите кількість NoDrives
себе замість того, щоб дозволити партії робити обчислення.
Це потрібно запустити як адміністратор. (можна автоматично підняти, але це дуже вдосконалено)
Якщо ви надаєте собі дозвіл на ключ, NoDrives
вам не доведеться запускати це як адміністратор. Просто відкрийте regedit.exe
, перейдіть до цієї клавіші та натисніть "Редагувати> Дозволи" та надайте собі "Повний контроль" над цією клавішею.
@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
Примітка.
Провідник Windows потрібно закрити та відкрити ще раз, перш ніж накопичувачі (або знову будуть видимі).
Налаштування для 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