使用注册表隐藏驱动器的步骤:
1、打开注册表编辑器,定位到注册表项:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
2、在注册表编辑器窗口右侧创建一个DWORD(32位)值,将其命名为:NoDrives
3、计算需要隐藏的盘符对应的数值,计算方法为A盘对应2的0次方,B盘对应2的1次方,C盘对应2的2次方......以此类推,多个盘符则分别计算其对应的数值后加在一起即可
4、将NoDrives的值数据设置为十进制,并填写计算出的数值
5、重启文件资源管理器Explorer.exe即可
一、手工操作
- 打开注册表,定位至
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer - 在右侧窗口中新建一个类型为
DOWRD(32位)的键值,将其命名为NoDrives - 计算需要隐藏的磁盘驱动器的数值,A盘的值为2的0次方,B盘的值为2的1次方,C盘的值为2的2次方,依此类推。若需隐藏多个磁盘驱动器,则将多个磁盘驱动器的值相加
- 修改
NoDrives键值数据,基数选择十进制,数值数据填写为刚才计算得到的值 - 打开任务管理器,重启
Explorer.exe(Windows 资源管理器)
二、使用脚本
1、使用脚本操作注册表
-
以管理员权限打开命令提示符
-
输入以下命令即可替代手工操作中的步骤1、2、4,命令中
/d后面的4即对应C盘
batch
reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /t REG_DWORD /d 4 /f
2、使用脚本计算单个盘符对应的值
复制以下代码到记事本中,并将其另存为"盘符数值计算.cmd"
batch
@echo off
setlocal enabledelayedexpansion
set /p drive=请输入一个盘符(仅字母):
set n=0
for %%i 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 (
set /a bn=1^<^<!n!
if /i %%i equ !drive! (
echo %%i = !bn!
)
set /a n+=1
)
pause
exit
运行批处理,假如你输入的是D,回车后,你应该得到D=8的输出显示
3、调整代码使其支持多个盘符数值的自动计算
使用以下代码,覆盖之前的cmd文件代码
batch
@echo off
setlocal enabledelayedexpansion
set /p drives=请输入需要隐藏的盘符(仅字母),以空格作为分隔:
for %%d in (!drives!) do call :calc %%d
setlocal disabledelayedexpansion
pause
exit
:calc
set n=0
for %%i 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 (
set /a bn=1^<^<!n!
if /i %%i equ %1 (
echo %%i = !bn!
)
set /a n+=1
)
goto :eof
运行批处理文件,输入D E F,你将能看到它可以输出每个盘符对应的数值
4、完善代码使其可以自动累加并添加到注册表
完整的批处理代码
batch
:: 隐藏磁盘
@echo off
setlocal enabledelayedexpansion
set sn=0
set /p drives=请输入需要隐藏的盘符(仅字母),以空格作为分隔:
for %%d in (!drives!) do call :calc %%d
echo 合计!sn!
reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /t REG_DWORD /d !sn! /f
setlocal disabledelayedexpansion
echo.
echo 需要重启Explorer.exe使其生效
pause
exit
:calc
set n=0
for %%i 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 (
set /a bn=1^<^<!n!
if /i %%i equ %1 (
echo %%i = !bn!
set /a sn+=!bn!
)
set /a n+=1
)
goto :eof
最后,如果需要脚本自动重启Explorer.exe可以单独使用以下命令
batch
taskkill /f /im "explorer.exe" && start "explorer.exe"
也可以在批处理中的pause命令后面敲击回车,另起一行后粘贴此命令
batch
rem 之前的代码不变...
pause
taskkill /f /im "explorer.exe" && start "explorer.exe"
exit
rem 之后的代码不变...
三、最后为了美观,使用C#写了一个GUI工具
1、工具预览

2、下载须知
工具使用.NET 10框架编写,故而电脑中若没有此运行库,可能会提示你下载

点击Download it now下载并安装运行库即可
本工具下载地址:点我下载