我需要一些帮助来整合这些部分来完成此任务:
- 运行禁用 USB 存储设备的脚本或程序。
- 将任何被阻止的设备安装记录到系统事件日志中。
- 运行第二个脚本或程序(或从步骤 1 取消正在运行的程序)并重新启用 USB 存储设备。
(我的应用程序在公共实验室的电脑上运行,以创建一个受限制访问的“沙箱”,用户可在其中进行测试。我需要阻止 USB 存储设备以防止作弊)
我的限制:
- 我的解决方案将针对我无法控制的公共计算机执行。任何需要重新启动、修改 BIOS 或物理更改计算机的操作均无效。
- 我可以假设该解决方案将以管理员身份执行,但如果它适用于非管理员,则可以获得加分。
- 现在只担心 Windows XP。Vista 或 Win7 兼容性可加分。
部分解决方案:
通过以下方式阻止自动安装设备知识库 823732. 快速又简单,但是:
- 当设备被阻止时我没有收到通知。(我想知道是否有人试图作弊,即使他们被屏蔽了)
- 根据本文如果 USB 存储驱动程序尚未安装,则即插即用系统将在第一次使用时安装它,覆盖注册表项并启用访问
通过组策略禁用 USB 存储(知识库 555324)。
- 我可以吗脚本在运行时将这些策略应用到本地计算机,无需重启?
- 当我完成后,我可以多么轻松地将策略恢复到之前的状态?
- 被阻止的设备会出现在安全日志中吗?
修改 USBSTOR.SYS 的 ACL,如本 SF 问题所示]4。
- 如果我拒绝当前类别的用户对该文件的权限,我的恢复脚本是否可以重新授予该权限?
- 如果我拒绝授予文件权限,如何确保任何设备挂载尝试都记录在安全日志中?
我愿意接受.NET 中的解决方案或使用批处理文件或 powershell 脚本。
(注:这与我的类似、悬赏 Stack Overflow 问题。如果您关心 SO 代表,请随意在那里回答)
答案1
要实施组策略,您无需重新启动。在客户端运行 gpupdate /force(两次)就足够了(例如,使用 psexec)。
如果您想恢复该策略,只需将其与 ou 取消链接并在客户端上重新运行 gpupdate /force(再次使用 psexec)。
如果计算机不在 AD 中,并且您无法实施组策略,您仍可以通过寄存器导入获得相同的结果。查看您将在 AD 中使用的 adm 模板,并使用 reg.exe 和 psexec 导入寄存器更改。另一个选择是使用 wpkg (http://wpkg.org),其中有一个用于安装/卸载操作的 xml 定义。它工作得很好,而且不花钱。