Está bem. Eu posso ter uma solução. Eu tentei olhar para o /savecred
parâmetro de, net use
mas não consegui fazê-lo funcionar 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 não tentar acessá-las.
Há uma chave do Registro para ocultar unidades do Explorer:
HKEY_xxx\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives
e HKEY_xxx podem ser HKEY_LOCAL_MACHINE
e HKEY_CURRENT_USER
.
Abaixo deste post, há um resumo de qual valor NoDrives
deve conter.
(adicione os números para as unidades).
Criei um pequeno arquivo de lote em que você não precisa fazer os cálculos sozinho.
É um arquivo de lote 'alternar'.
Execute-o uma vez para conectar-se à sua "Minha VPN".
Executá-lo novamente para desconexão e ocultar as unidades I, J e K .
Você pode facilmente dividir isso em dois arquivos de lote, mas você entende o ponto ... Você também pode simplificar esse arquivo de lote se definir o seu número em NoDrives
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ê conceder a si mesmo permissão na chave NoDrives
que você não tem que executar este como administrador. Basta abrir regedit.exe
, navegue até essa chave e clique em "Editar> Permissões" e conceda a si 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 sejam ocultadas (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