ตกลง. ฉันอาจมีทางออก ฉันพยายามค้นหา/savecred
พารามิเตอร์ของnet use
แต่ไม่สามารถทำให้มันทำงานได้อย่างถูกต้องดังนั้นนี่เป็นอีกวิธีหนึ่ง:
ปัญหาของคุณคือความล่าช้ากับ Explorer หลังจากตัดการเชื่อมต่อกับ VPN
เหตุใดจึงไม่ซ่อนไดรฟ์จาก Explorerหลังจากยกเลิกการเชื่อมต่อดังนั้นจึงไม่พยายามเข้าถึงไดรฟ์
มีคีย์รีจิสทรีเพื่อซ่อนไดรฟ์จาก Explorer:
HKEY_xxx\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives
HKEY_xxx และทั้งสามารถและHKEY_LOCAL_MACHINE
HKEY_CURRENT_USER
ด้านล่างโพสต์นี้มีข้อสรุปว่าNoDrives
ควรจะเก็บค่าอะไร
(เพิ่มตัวเลขสำหรับไดรฟ์)
ฉันได้สร้าง batchfile ขนาดเล็กที่คุณไม่ต้องทำการคำนวณด้วยตัวเอง
มันเป็น 'toggle'-batchfile
เรียกใช้หนึ่งครั้งเพื่อเชื่อมต่อกับ "My VPN" ของคุณ
เรียกใช้อีกครั้งเพื่อตัดการเชื่อมต่อและซ่อนไดรฟ์ I, J และ K
คุณสามารถแบ่งมันออกเป็นสองชุดได้อย่างง่ายดาย แต่คุณได้คะแนน ... คุณสามารถทำให้ batchfile นี้ง่ายขึ้นหากคุณกำหนดจำนวนของNoDrives
ตัวเองแทนที่จะปล่อยให้ชุดคำนวณทำการคำนวณ
ต้องเรียกใช้ในฐานะผู้ดูแลระบบ (เป็นไปได้ที่จะยกระดับโดยอัตโนมัติ แต่ขั้นสูงมาก)
หากคุณให้สิทธิ์ตัวเองในคีย์NoDrives
คุณไม่จำเป็นต้องเรียกใช้ในฐานะผู้ดูแลระบบ เพียงแค่เปิดขึ้นregedit.exe
เรียกดูคีย์นี้และคลิก "แก้ไข> สิทธิ์" แล้วให้สิทธิ์ "ควบคุมทั้งหมด" ให้ตัวคุณเองผ่านคีย์นี้
@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
หมายเหตุ:
ต้องปิดและเปิด Windows Explorer อีกครั้งก่อนที่จะซ่อนไดรฟ์ (หรือมองเห็นได้อีกครั้ง)
การตั้งค่าสำหรับ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