代码之家  ›  专栏  ›  技术社区  ›  Seth Petry-Johnson

如何限制使用C#访问USB驱动器?

  •  3
  • Seth Petry-Johnson  · 技术社区  · 14 年前

    我正在开发一个需要 将机器置于受限的、类似于亭的状态。我需要阻止的事情之一是访问连接的USB驱动器。有没有办法通过C#做到这一点, 搞乱Windows组策略(这一方法包括在 my other SO question on this topic

    我意识到这可能会带来安全隐患,我可能需要对这个盒子的管理员权限,这没关系。在这一点上,我只需要指出正确的方向,继续我的研究。

    更新:

    我的目标是WindowsXP。Vista支持会很好,但不是必需的。理想情况下,我只会阻止插入的USB驱动器 之后 我的应用程序启动,但可以阻止所有USB驱动器访问。

    此应用程序将在我不控制的机器上运行。基本上,我的应用程序被安装,创建了一个受限的沙盒。然后用户登录到我的应用程序,执行一些定时操作,然后注销。我的应用程序被删除,将电脑恢复到以前的状态。我正在寻找一种基于代码的解决方案,它使我能够对预先存在的环境进行最少数量的假设,包括我可以访问BIOS的假设。

    1 回复  |  直到 7 年前
        1
  •  6
  •   sclarson    14 年前

    您可以通过修改注册表来实现这一点。

    using Microsoft.Win32;
    RegistryKey key;
    key = Registry.LocalMachine.OpenSubKey
             ("SYSTEM\\CurrentControlSet\\Services\\UsbStor");
    key.SetValue("Start", 4, RegistryValueKind.DWord);  //disables usb drives
    key.SetValue("Start", 3, RegistryValueKind.DWord);  //enables usb again
    

    http://support.microsoft.com/kb/823732

    任何已经连接的设备都将保留在那里,但不会自动安装插入的新usb驱动器。