windows虚拟盘实现

当很多人都用一台电脑的时候,是不是觉得自己的文件大家都看得见很不方便呢,这个讲例就是讲的在WINDOW XP上让不同的用户除了在C盘有自己的一个系统文件夹外,再创一个私人的分区出来,其它人是看不到的。

把B.BAT的文件 里的sfqas换成管理员用户名
F:\HOME是各个虚拟盘文件所在的位置

如果要改用其它盘做虚拟盘文件所在的位置,记得把label f: %USERNAME%的盘 的f:修改一下,和上面的F:\HOME对应,还有注册表操作那里有个参数我就不多说了

然后把这个文件放到C:\Documents and Settings\All Users\「开始」菜单\程序\启动这个位置

那样的就OK了,当然如果有些安全你做过高也不行


实现原理是这样的:
如果有三个账号,
一个是管理员sfqas
一个是laoliu
一个是xiaoliu
如果是laoliu 登陆,那么程序先去看一下f:\ home\下面有没有laoliu这个文件夹,如果没有就建一个,并修改好权限
虚拟一个Z 盘出来,名字是 laoliu的盘
并把F盘隐藏
这样xiaoliu登陆的时候就看不见laoliu的虚拟的盘,他看见的是什么呢
xiaoliu登陆的时候也做和老刘一样的操作,程序给他虚拟了一个自己的盘
不过呢,只要注消或是断开,虚拟的盘就没有了
文件呢会保存在f:\ home\xiaoliu下面

如果一个用户 登陆了多次运行这个文件,就可以弄得很多个盘, 但都会打开同一个位置
超级管理员可以看得见F盘
xiaoliu和laoliu看不见F盘,但他们通过命令行,或是地址栏里一样可以打开F盘,他们也一样看不了对方的虚拟盘对应的文件夹,不过这个不包括精通电脑的人

bat

@echo off
set flag=
set homedir=
if exist f:\home\%USERNAME% set flag=1

if not defined flag md f:\home\%USERNAME% 2>nul & echo yes

if not defined flag cacls f:\home\%USERNAME% /e /R guests /c /t
if not defined flag cacls f:\home\%USERNAME% /e /g sfqas:f /c /t
if not defined flag cacls f:\home\%USERNAME% /e /r everyone /c /t
if not defined flag cacls f:\home\%USERNAME% /e /p %USERNAME%:f /c /t
if not defined flag cacls f:\home\%USERNAME% /e /r administrators
if not defined flag cacls f:\home\%USERNAME% /e /r users /c /t
if not defined flag cacls f:\home\%USERNAME% /e /r "CREATOR OWNER" /c /t
if not defined flag cacls f:\home\%USERNAME% /e /r system /c /t


label f: %USERNAME%的盘

set n=0
subst >b.txt
for /f "delims=" %%i in (b.txt) do set /a n+=1

del b.txt

if not %USERNAME% == sfqas if %n%==0 subst z: f:\home\%USERNAME%
if not %USERNAME% == sfqas if %n%==1 subst y: f:\home\%USERNAME% & echo yes
if not %USERNAME% == sfqas if %n%==2 subst x: f:\home\%USERNAME% & echo yes
if not %USERNAME% == sfqas if %n%==3 subst w: f:\home\%USERNAME% & echo yes
if not %USERNAME% == sfqas if %n%==4 subst v: f:\home\%USERNAME% & echo yes
if not %USERNAME% == sfqas if %n%==5 subst u: f:\home\%USERNAME% & echo yes
if not %USERNAME% == sfqas if %n%==6 subst t: f:\home\%USERNAME% & echo yes
if not %USERNAME% == sfqas if %n%==7 subst s: f:\home\%USERNAME% & echo yes

reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoDrives /t REG_BINARY /d 200000 /f
if %USERNAME% == sfqas reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoDrives /t REG_BINARY /d 000000 /f

猜你喜欢

转载自www.cnblogs.com/sfqas/p/12181881.html