欢迎光临 Enjoy IT (ITECN.NET) 登录 | 注册 | 帮助

<给普通用户增加额外限制>系列一:禁止普通用户访问光驱

笔者曾经在微软新闻组里回答过这个问题,当时是采用Volume Mount的方法将分区装载到某个NTFS目录的子目录下,然后对该NTFS目录设置权限,禁止普通用户访问即可。当时有幸评为精华帖,链接如下:
http://bbs.mscommunity.com/Forums/ShowThread.aspx?PostID=2851

不过本文介绍的是另一个方法,介绍如何用DevCon这个工具,借助组策略的登录/注销脚本来达到目的。

工作组环境里的一台Windows XP Professional的计算机,我们的任务是仅允许管理员组的用户访问光驱,而禁止普通用户访问光驱。这里介绍如何借助DevCon命令行工具来制作登录/注销脚本,在管理员登录时自动启用光驱,而在管理员注销时自动停用光驱。具体步骤如下:
1.制作批处理文件
在这个阶段,我们可以利用DevCon命令制作两个批处理文件,分别用来禁用或者启用光驱设备。
⑴ DevCon(Device Console)命令行工具,用来代替设备管理器,下载地址如下:
http://download.microsoft.com/download/1/1/f/11f7dd10-272d-4cd2-896f-9ce67f3e0240/devcon.exe
下载好以后,将该DevCon命令工具解压缩到C:\WINDOWS\system32目录下。
⑵ 要禁用光驱设备,可以在命令提示符窗口运行以下命令:
DevCon disable DevInsId
而要启用光驱设备,可以在命令提示符窗口运行以下命令:
DevCon enable DevInsId
其中DevInsId是指光驱的设备范例ID,在设备管理器里打开光驱设备的属性对话框,在“详细信息”选项卡里即可查看光驱的设备范例Id。

例如图中的光驱ASUS的设备范例ID是:
DVD-E616P2IDE\CDROMASUS_DVD-E616P2_________________________1.03____\4&1B2CF2DB&0&1.0.0
幸运的是DevInsId参数支持通配符,所以要禁用光驱ASUS,可以用以下命令
DevCon disable asus*
⑶ 用记事本新建一个空白文档,然后输入以下内容(其中的asus*要用实际的设备范例Id来代替),并保存为C:\bat\DisableCDROM.bat文件:
DevCon disable asus*
用记事本新建一个空白文档,然后输入以下内容(其中的asus*要用实际的设备范例Id来代替),并保存为C:\bat\EnableCDROM.bat文件:
DevCon enable asus*
2.设置登录/注销脚本
制作好批处理文件,我们就可以采用以下步骤,借助组策略管理单元分别将这两个批处理文件设置为登录脚本和注销脚本。
⑴ 以管理员身份登录计算机。
⑵ 单击开始、运行,在打开的“运行”对话框里输入gpedit.msc并回车。
⑶ 在打开的“组策略”管理单元窗口左侧的控制台树里依次展开用户配置、Windows设置、脚本-(登录/注销),在右侧的详细窗格里双击登录。
⑷ 在打开“登录属性”对话框里单击添加,然后在“脚本名”文本框里输入“C:\bat\EnableCDROM.bat”。

⑸ 依次单击两次确定,关闭“登录属性”对话框。
⑹ 用类似的方法将C:\bat\DisableCDROM.bat文件设置为注销脚本。
设置完成以后,每次管理员登录系统时,就会运行EnableCDROM.bat脚本文件,可以使用光驱;而当管理员注销时,就会运行DisableCDROM.bat脚本文件,导致随后登录的普通用户无法使用光驱。
为什么普通用户不会真正执行登录和注销脚本?
当普通用户登录和注销的时候也要运行这两个脚本文件,但是由于DevCon命令的运行需要管理员权限,所以这两个脚本文件并不能真正在普通用户环境下执行。
3.漏洞补救
深入的实验发现,上述的解决方案还存在着以下两个“致命”漏洞:
⑴ 冷启动漏洞
假设当前的登录用户是管理员,则光驱处于启用状态。这时候如果按机箱上的“reset”按钮重启系统,注销脚本就不会运行,所以当普通用户登录时,光驱仍然是可用的。
如果在管理员环境里按住Ctrl键,同时在任务管理器窗口上单击关机、重新启动(启用快速重启),也会发生类似问题。
⑵ 快速用户切换漏洞
假设当前的登录用户是管理员,则光驱处于启用状态。这时候如果单击开始菜单、注销、切换用户,注销脚本就不会运行,当普通用户登录时,光驱仍然是可用的。
如果在管理员环境里按住WIN+L组合键锁定系统,然后以普通用户身份解锁,也会发生类似问题。
• 冷启动漏洞的补救办法
⑴ 以管理员身份登录计算机。
⑵ 单击开始、运行,在打开的“运行”对话框里输入gpedit.msc并回车。
⑶ 在打开的“组策略”管理单元窗口左侧的控制台树里依次展开计算机配置、Windows设置、脚本-(启动/关机),在右侧的详细窗格里双击启动。
⑷ 在打开“启动属性”对话框里单击添加,然后在“脚本名”文本框里输入“C:\bat\DisableCDROM.bat”。
因为启动脚本是在用户登录之前运行的,对于所有用户,DisableCDROM.bat脚本文件都会生效,所以当普通用户登录系统以后,光驱将会被禁用。
而当管理员登录系统以后,就会运行EnableCDROM.bat脚本文件,所以可以使用光驱。
• 快速用户切换漏洞的补救办法
⑴ 以管理员身份登录计算机。
⑵ 单击开始、控制面板,在打开的控制面板窗口里单击“用户帐户”。
⑶ 单击其上的“更改用户登录或注销方式”。
⑷ 在下一页上确保清空“使用快速用户切换”复选框。

⑸ 单击“应用选项”按钮,保存所做的设置。
这样普通用户将无法使用快速用户切换的方法来绕过“注销脚本”的运行,同样当管理员锁定计算机以后,系统会提示只能由管理员来解除锁定。

提示 要了解关于DevCon工具的更详细信息,请参考以下的微软知识库文章:
http://support.microsoft.com/kb/311272/zh-cn

已发表 2005年10月27日 9:17 作者 ahpeng

评论通知

如果您想在帖子更新时接到邮件通知,请先登录。这里

订阅帖子评论使用 RSS

评论

尚无任何评论

说说您的看法?

(必填) 
必填 
(必填)