primero deberías saber cómo se calcula el valor de ese registro, obligado a leer en el sitio oficial.
Porque si te fijas bien, nos es que si quiero ocultar A, añado un registro con un número y si quiero ocultar D añado otro registro con otro número.
Es un sólo registro, con un número con significado, que agrupa las letras que deseas ocultar.
Lo otro, en cuenta limitada, no podrás tocar el registro.
http://support.microsoft.com/kb/555438/en-us
Al parecer es una suma. Pero suponiendo que sólo quieres ocultar una unidad (el pendrive) para identificar la unidad de tu pendrive, tienes varias opciones, una podría ser la más fácil, tener el bat en el pendrive, y luego llamas así: %~d0 que te devuelve la letra dónde está el archivo, después añades al registro el número según la tabla del sitio oficial.
Primero creas el autorun que ejecute tu bat, en wikipedia sale como hacer autorun.
y luego el bat
una idea:
@echo off
set drv=%~d0
set drv=%drv:~0,1%
call :letra
reg.exe add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /t REG_BINARY /f /d %val% >NUL
cls
explorer %drv%:
reg.exe delete HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /f >NUL
goto :eof
:letra
if %drv%==A (set val=01000000 & goto :eof)
if %drv%==B (set val=02000000 & goto :eof)
if %drv%==C (set val=04000000 & goto :eof)
if %drv%==D (set val=08000000 & goto :eof)
if %drv%==E (set val=10000000 & goto :eof)
if %drv%==F (set val=20000000 & goto :eof)
if %drv%==G (set val=40000000 & goto :eof)
if %drv%==H (set val=80000000 & goto :eof)
if %drv%==I (set val=00010000 & goto :eof)
if %drv%==J (set val=00020000 & goto :eof)
if %drv%==K (set val=00040000 & goto :eof)
if %drv%==L (set val=00080000 & goto :eof)
if %drv%==M (set val=00100000 & goto :eof)
if %drv%==N (set val=00200000 & goto :eof)
if %drv%==O (set val=00400000 & goto :eof)
if %drv%==P (set val=00800000 & goto :eof)
if %drv%==Q (set val=00000100 & goto :eof)
if %drv%==R (set val=00000200 & goto :eof)
if %drv%==S (set val=00000400 & goto :eof)
if %drv%==T (set val=00000800 & goto :eof)
if %drv%==U (set val=00001000 & goto :eof)
if %drv%==V (set val=00002000 & goto :eof)
if %drv%==W (set val=00004000 & goto :eof)
if %drv%==X (set val=00008000 & goto :eof)
if %drv%==Y (set val=00000001 & goto :eof)
if %drv%==Z (set val=00000002 & goto :eof)
goto :eof
Listo, ahora puedes igualmente entrar a la unidad pero, no aparece en Mi PC, cuando cierras la ventana, se elimina el valor del registro, para dejarlo como estaba, suponiendo que no usaban ese valor anteriormente.
Existe otro valor llamado NoViewOnDrive que te permite bloquear la letra si la escribes desde el explorador, aunque utiliza otros valores, y al parecer requiere reiniciar, pero de todas formas desde el dos lees todo.