Baik. Saya mungkin punya solusi. Saya mencoba melihat ke dalam /savecred
parameter net use
tetapi tidak bisa berfungsi dengan baik jadi inilah pendekatan lain:
Masalah Anda adalah keterlambatan dengan Explorer setelah terputus dengan VPN.
Jadi mengapa tidak menyembunyikan drive dari Explorer setelah pemutusan sehingga tidak akan mencoba mengaksesnya.
Ada kunci registri untuk menyembunyikan drive dari Explorer:
HKEY_xxx\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives
dan HKEY_xxx dapat berupa HKEY_LOCAL_MACHINE
dan HKEY_CURRENT_USER
.
Di bawah posting ini ada ringkasan tentang nilai apa yang NoDrives
harus dimiliki.
(tambahkan angka untuk drive).
Saya telah membuat batchfile kecil di mana Anda tidak perlu melakukan perhitungan sendiri.
Ini adalah 'toggle'-batchfile.
Jalankan sekali untuk terhubung ke "My VPN" Anda.
Jalankan lagi untuk memutuskan dan menyembunyikan drive I, J dan K .
Anda dapat dengan mudah membagi ini dalam dua batchfile tetapi Anda mendapatkan intinya ... Anda juga dapat menyederhanakan batchfile ini jika Anda mengatur jumlah NoDrives
diri Anda alih-alih membiarkan batch melakukan perhitungan.
Ini perlu dijalankan sebagai administrator. (Dimungkinkan untuk secara otomatis meningkatkan tetapi itu sangat maju)
Jika Anda memberi diri Anda izin pada kunci, NoDrives
Anda tidak harus menjalankan ini sebagai administrator. Cukup buka regedit.exe
, telusuri kunci ini dan klik "Edit> Izin" dan beri diri Anda "Kontrol Penuh" atas kunci ini.
@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
Catatan:
Windows Explorer perlu ditutup dan dibuka lagi sebelum drive disembunyikan (atau terlihat lagi).
Pengaturan untuk 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