Tamam. Bir çözümüm olabilir. Ben /savecred
parametre bakarak çalıştı net use
ama düzgün çalışmak için alamadım bu yüzden burada başka bir yaklaşım:
Sorun, VPN ile bağlantıyı kestikten sonra Explorer'daki gecikmedir.
Öyleyse neden bağlantıyı kestikten sonra sürücüleri Explorer'dan gizlemiyorsunuz, bu yüzden erişmeye çalışmaz.
Sürücüleri Explorer'dan gizlemek için bir kayıt defteri anahtarı vardır:
HKEY_xxx\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives
ve HKEY_xxx ikisi de olabilir HKEY_LOCAL_MACHINE
ve HKEY_CURRENT_USER
.
Bu yazının altında hangi değerin NoDrives
tutulması gerektiğine dair bir özet bulunmaktadır .
(sürücülerin numaralarını ekleyin).
Hesaplamaları kendiniz yapmak zorunda olmadığınız küçük bir toplu iş dosyası oluşturdum.
Bu bir 'geçiş' toplu dosyasıdır.
"VPN'im" e bağlanmak için bir kez çalıştırın. I, J ve K sürücülerinin
bağlantısını kesmek ve gizlemek için tekrar çalıştırın .
Bunu iki toplu iş dosyasına kolayca bölebilirsiniz ama noktaya gelebilirsiniz ... Toplu işin NoDrives
hesaplamayı yapmasına izin vermek yerine kendiniz sayısını ayarlarsanız bu toplu iş dosyasını da basitleştirebilirsiniz .
Bunun yönetici olarak çalıştırılması gerekir. (otomatik olarak yükseltmek mümkündür, ancak bu çok gelişmiş)
Anahtar için kendinize izin NoDrives
verirseniz, bunu yönetici olarak çalıştırmanız gerekmez . Sadece açın regedit.exe
, bu tuşa göz atın ve "Düzenle> İzinler" i tıklayın ve kendinize bu tuşun üzerinde "Tam Denetim" verin.
@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
Not:
Sürücüler gizlenmeden (veya tekrar görünür) Windows Gezgini kapatılmalı ve tekrar açılmalıdır.
Ayarlar 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