是否可以阻止普通用户通过 Windows 资源管理器访问 C 盘?他们应该被允许执行某些程序。这是为了确保员工无法窃取或复制专有软件,即使他们应该能够执行它。
一种方法是更改 Windows 组策略中的选项,并将“shell”设置为除“explorer.exe”之外的其他内容。我正在寻找一个类似的 Windows 设置,它只是隐藏 C 驱动器或以其他方式阻止简单访问。
这适用于 Windows XP/7。
答案1
那么,如果他们无法读取程序所在的驱动器,他们该如何运行该程序呢?
简而言之 - 您不能按照您要求的方式执行此操作。对于要执行程序的人来说,他们必须拥有能够读取它的凭据。您能想象如果您确实明确拒绝用户访问 C:\ 驱动器,还会发生什么吗?他们甚至无法登录。
您需要一个版权保护或 DRM 解决方案,就像许多游戏一样。或者某种身份验证服务器,这样程序只有在能够联系到公司网络上的许可证服务器时才能运行。我知道有商业解决方案可以解决这一问题。
或者,您可以以这样一种方式提供该程序,使用户永远不会在自己的电脑上运行它 - 托管的网络应用程序、没有映射驱动器的终端服务等。当然,并非所有应用程序都能以这种方式有效运行。
编辑 - 另外,你为什么担心他们会反编译它?你没有在应用程序内保存敏感凭据,对吧?对于几乎所有事情来说,这都是一种糟糕的完成方式。例如,如果你必须更改密码,那么现在你必须重新编译并重新分发整个程序。
如果是数据库访问,您可以分发一个保存了密码的 ODBC 连接,这样程序就不需要将凭证硬编码进去。
补充编辑 - 您上个月已经在 StackOverflow 上问过这个问题,并且得到了和我刚刚给您的一样好的答案。您不能像问的那样这样做,因为如果有人无法读取它,他们就无法运行它。有软件解决方案,有人提到 Nalpeiron 作为许可证服务器,这与我上面的答案相符。其他人提到拆分业务逻辑,以便敏感部分在服务器上运行 - 您说应用程序已经开发好了。因此,您可以在 TS 上托管它,不让用户映射驱动器,这样他们就无法从桌面读取二进制文件。就是这样。
答案2
好吧,如果您想允许执行,他们必须能够读取磁盘内容 => 他们可以复制它。