Đồng ý. Tôi có thể có một giải pháp. Tôi đã thử xem xét /savecred
thông số của net use
nhưng không thể làm cho nó hoạt động chính xác vì vậy đây là một cách tiếp cận khác:
Vấn đề của bạn là sự chậm trễ với Explorer sau khi ngắt kết nối với VPN.
Vậy tại sao không ẩn các ổ đĩa khỏi Explorer sau khi ngắt kết nối để nó không cố gắng truy cập chúng.
Có một khóa đăng ký để ẩn các ổ đĩa từ Explorer:
HKEY_xxx\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives
và HKEY_xxx có thể cả HKEY_LOCAL_MACHINE
và HKEY_CURRENT_USER
.
Bên dưới bài viết này có một bản tóm tắt về giá trị nào NoDrives
nên giữ.
(thêm số cho các ổ đĩa).
Tôi đã tạo một lô nhỏ trong đó bạn không phải tự mình thực hiện các phép tính.
Nó là một 'toggle'-batchfile.
Chạy nó một lần để kết nối với "My VPN" của bạn.
Chạy nó một lần nữa để ngắt kết nối và ẩn các ổ đĩa I, J và K .
Bạn có thể dễ dàng chia phần này thành hai đợt nhưng bạn có được điểm ... Bạn cũng có thể đơn giản hóa tệp này nếu bạn tự đặt số lượng NoDrives
thay vì để lô thực hiện phép tính.
Điều này cần phải được chạy như quản trị viên. (có thể tự động nâng lên nhưng điều đó rất tiên tiến)
Nếu bạn cấp quyền cho mình trên khóa, NoDrives
bạn không phải chạy nó với tư cách quản trị viên. Chỉ cần mở ra regedit.exe
, duyệt đến phím này và nhấp vào "Chỉnh sửa> Quyền" và tự cấp cho mình "Toàn quyền kiểm soát" đối với khóa này.
@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
Lưu ý:
Windows Explorer cần được đóng và mở lại trước khi các ổ đĩa bị ẩn (hoặc hiển thị lại).
Cài đặt cho 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