【问题标题】:Can I modify a Win7 environment to allow a .Net program to always run as Administrator?我可以修改 Win7 环境以允许 .Net 程序始终以管理员身份运行吗?
【发布时间】:2012-01-30 01:08:07
【问题描述】:

我们即将推出数百台运行 Windows 7 的新机器,操作系统通过 WDS 安装,因此目前我们可以进行更改并将它们 sysprep 到构建中。

问题在于我们多年前编写的一个 .Net 应用程序,它本身产生了一个修改过的命令 shell。该 shell 运行一个 dataflex 应用程序,该应用程序本身需要以提升的权限运行。

我们不授予用户任何一般管理员权限。

是否有一种机制可以预先允许我们的 .Net 应用程序以管理员身份运行,以便命令控制以管理员身份运行?

我知道我可以在 app.manifest 中进行更改,以要求程序以管理员身份运行。我不知道如何(作为管理员)配置机器以允许这种情况发生,而无需给予用户比我希望他们拥有的更多的权利或凭据。

【问题讨论】:

  • 您不能将应用程序修改为始终以管理员身份运行。如果你能做到这一点,那么任何程序都可以赋予自己管理员权限,这意味着整个安全基础设施都被破坏了。作为管理员,您也许能够配置系统,以便允许特定程序行使某些提升的权限。
  • 您希望最终用户以管理员身份运行某些东西而不是管理员?我同意其他一些观点,因为你需要改变你正在尝试做的事情。您需要解决问题而不是解决方法。如果您的用户确实需要管理员权限来完成他们的工作,那么请给他们。如果他们不这样做,那么您需要解决需要管理员权限的应用程序的问题。就像其他人说的,可能只是修改资源权限。
  • 吉姆,我知道允许自己以管理员身份运行的程序将是一个荒谬的安全漏洞,但授予权限以允许特定软件以管理员身份运行的管理员并非如此愚蠢的。我在想像 caspol 这样的东西。我可以通过设置没有时间表并提供运行方式凭据的计划任务来实现它,并为用户提供启动任务的快捷方式。但我认为这些信誉无法在 sysprep 中存活。
  • 刚刚意识到查尔斯编辑了这个问题并重新命名它相当糟糕。我对“修改程序”不感兴趣。显然那是不可能的。我对我可以对系统做些什么来允许它感兴趣。正如建议的那样,我需要在 ServerFault 上提出这个问题。

标签: c# .net elevated-privileges


【解决方案1】:

应用程序是否 以管理员身份运行,还是只需要访问特定内容?如果它在启动时有一个虚假的“我是管理员”检查,您可能可以使用来自 Application Compatibility Toolkit 的 shim 来欺骗它,然后配置对它实际需要的东西的访问权限。

如果它看起来会成功,那么您最好将进一步的问题交给服务器故障。

【讨论】:

  • 那里可能有一条前进的路线。它不是应用程序检查,它是使用老式 32 位 dos 扩展器的 dataflex 部分。我会再次询问服务器故障。
  • 顺便说一句:您是否验证过“老式 32 位 DOS 扩展程序”适用于 64 位 Windows?如果没有,你将不得不计划在未来几年内解决这个问题......
  • 64 位Windows 安装,是的,确实如此。 (作为管理员)
【解决方案2】:

Roger 的意思是,许多人认为,如果一个应用程序不能作为普通用户运行,他们必须赋予它管理员权限。即使不是大多数情况,这在许多情况下都是不正确的。您必须找出它失败的特定权利,然后分配这些权利。这是更多的工作,但它避免了向人们授予一般管理员权限。

【讨论】:

    猜你喜欢
    • 2012-02-07
    • 2011-09-01
    • 2010-12-19
    • 2023-03-07
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多