如何在不放弃管理员访问权限的情况下以管理员权限运行一组受限的程序(Win7 Pro)

如何在不放弃管理员访问权限的情况下以管理员权限运行一组受限的程序(Win7 Pro)

我有一个共享系统,运行 Windows7 X64,仅限于“标准用户”,没有密码。并非所有有权访问系统的人都有管理员密码。

这种方法效果很好,但有些应用程序除外 - 特别是用于加密硬盘/USB 闪存驱动器的解锁应用程序。某些特定的应用程序要么需要管理员访问权限(例如 Seagate Blackarmor),要么在没有管理员访问权限的情况下失败 - 因为这些程序正在向设备发送原始命令,所以这是可以预料到的。

我希望能够将这些特定程序的哈希值添加到白名单中,并让它们以管理员身份运行而无需任何提示。由于这些程序在定义上位于可移动媒体上,因此我不能简单地使用文件名甚至路径。共享系统的用户之一可以被视为“狡猾的”,因此任何暂时授予用户帐户管理员权限的行为肯定会导致问题。

我希望能够做到:1) 创建一个只能运行白名单中的程序的管理员帐户(如果失败,则从目录中运行)我找不到一个好方法来做到这一点:据我所知,SRP 是否同样适用于所有用户?即使我在系统上的所有目录上都放置了“拒绝”令牌,以便新目录可以继承它,它仍然可能从已安装的 USB 设备运行程序。我也不知道是否可以创建一个不从父级继承的新目录,这将删除拒绝令牌并提供管理员访问权限。

2)找到一个轻量级服务,在本地环境中运行这些程序。Windows7 似乎默认阻止跨权限级别通信,而我还没有在 Windows 7 中找到这样的服务。一个例子似乎是“sudo”(http://pages.cpsc.ucalgary.ca/~nfriess/sudo/)但由于它使用了 WLNOTIFY 钩子,因此在 Vista 和 Windows7 下都无法运行

非解决方案:
- RunAs:需要管理员密码!(但每个人都称其为“sudo”)
- RunAs /savecred:好主意,但似乎完全不安全。
- RUNASSPC - 与 RunAs 概念相同,使用带有凭据的“加密”文件,但检查用户空间。
- 计划任务 - “固定”权限使这变得困难,并且即使支持也不支持交互式进程。
- SuRun:来自 Google:“Surun 使用自己的 Windows 服务,在程序启动时将用户添加到管理员组,然后再次自动将其从该组中删除”

答案1

可以使用与管理员需要的应用程序位于同一目录中的清单文件,如果应用程序是 app.exe,则清单将是 app.exe.manifest

msdn 上的一些信息。

答案2

也许它可以解决问题:在本地 GPO 中或通过域 GPO,为标准用户提供“加载和卸载设备驱动程序”的功能。

相关内容