Ok. Eu posso ter uma solução. Tentei pesquisar o parâmetro /savecred
de net use
, mas não consegui que funcionasse corretamente, então aqui está outra abordagem:
Seu problema foi o atraso com o Explorer após a desconexão com a VPN.
Então, por que não ocultar as unidades do Explorer após a desconexão para que ele não tente acessá-las.
Existe uma chave de registro para ocultar as unidades do Explorer:
HKEY_xxx\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives
e HKEY_xxx podem ser ambos HKEY_LOCAL_MACHINE
e HKEY_CURRENT_USER
.
Abaixo desta postagem, há um resumo do valor que NoDrives
deve ter.
(adicione os números para as unidades).
Eu criei um pequeno batchfile onde você não precisa fazer os cálculos sozinho.
É um arquivo batch 'toggle'.
Execute uma vez para se conectar à sua "Minha VPN".
Execute-o novamente para desconectar e ocultar as unidades I, J e K .
Você pode dividir isso facilmente em dois batchfiles, mas você entende ... Você também pode simplificar esse lote se definir o número de NoDrives
em vez de permitir que o lote faça o cálculo.
Isso precisa ser executado como administrador. (é possível elevar automaticamente, mas isso é muito avançado)
Se você concede a si mesmo permissão na chave NoDrives
você não precisa executar isso como administrador. Basta abrir regedit.exe
, navegar para essa chave e clicar em "Editar > Permissões" e conceder a você mesmo "Controle total" sobre essa chave.
@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
Nota:
O Windows Explorer precisa ser fechado e aberto novamente antes que as unidades fiquem ocultas (ou visíveis novamente).
Configurações para 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