禁用每个应用程序的Vista UAC,或在没有提示的情况下提升权限?

时间:2009-05-12 13:45:07

标签: windows-vista uac

我有一个普通用户需要能够运行的应用程序,但需要管理员权限才能实际运行。

我尝试使用“以管理员身份运行”来创建用户运行它的快捷方式,但这只会在尝试运行应用程序时导致UAC提示。

有没有办法以编程方式提升权限,而我的用户不需要通过UAC提示和/或知道管理员密码?从安全角度来看,我理解大多数应用程序都不应该被允许这样做,所以如果我能提供有效的用户名/密码对,我希望有一些方法可以做到这一点。

该应用程序是用C#编写的,因此首选完全托管的解决方案,但 p /调用Black Magic (甚至编写 MC ++ Wrapper,我们不会谈论)比完全禁用UAC 更多可接受。

3 个答案:

答案 0 :(得分:8)

通常,通过安装以SYSTEM或管理员帐户身份运行的Windows服务来解决此问题。然后,您的应用程序可以从此服务请求特权操作。

显然,不会构成安全威胁,请确保您的服务无法运行任意代码或可能使所有用户容易受到权限提升攻击的内容。

Winpcap和大多数其他嗅探应用程序使用类似的设计来为非特权用户提供嗅探访问。

答案 1 :(得分:1)

实际上,为什么不创建一个以提升权限运行应用程序的任务计划?只要您在高程下设置任务,当重启期间自动运行或任何触发器时,它都不会提示您输入UAC。

只需确保在清单文件中设置level = requireElevation,并且任务计划程序将使用管理员权限运行您的应用程序,而不会提示您的用户获取管理员权限,因为在使用管理员权限设置任务时已经建立了此权限。 / p>

答案 2 :(得分:0)

这是不可能的。您无法决定禁止UAC提示。

你必须问自己:

  

Windows XP会发生什么?

用户是Windows XP上的标准用户,应用程序“需要”以管理员身份运行。你是:

  • 要拒绝参加?
  • 在启动时崩溃?
  • 将显示用户访问被拒绝的错误消息?

如果根本不允许用户在Windows XP上以标准用户身份运行该应用程序,那么UAC就是您的朋友:告诉用户他们必须是管理员。

它甚至允许让他们(暂时)获得管理权限。

但你必须问自己:

  

Windows Vista会发生什么?

为了提升,用户需要IT人员从三座建筑物上走过,这样他们就可以“过肩”输入他们的凭据。也许你可以让用户的生活更轻松。让99.9%的应用程序运行,并将0.01%分解为“管理”模块。