如何配置Visual Studio,使其在每次运行时不会提示用户账户控制(UAC)?

12

我最近切换到了Vista操作系统,但我想保持UAC开启状态,因为我同意它可以大大提高计算机的安全性。然而我常用的一些开发工具需要以管理员权限运行:

  • PIX for Windows
  • Visual Studio 2005(调试和IncrediBuild需要以管理员权限运行)
  • 映射的驱动器和substed驱动器:以管理员权限运行的进程好像看不到我在用户帐户中映射的驱动器。 这篇文章描述了这个问题,但我不确定如何实现其最终建议:“在以管理员身份登录的情况下映射这些驱动器”。

我尝试了许多我找到的建议,Compatibility Administrator 看起来很有前途,但结果仍然不是我想要的。当我使用RunAsInvoker时,没有UAC提示,但Visual Studio无法正常工作。当我使用RunAsAdmin或RunAsHighest时,它可以正常工作,但会提示UAC。

有没有办法让UAC记住某些特定应用程序始终以管理员身份运行,而不提示我,或者其他方法允许我以管理员身份启动VS而无需提示?如果没有办法,是否存在某些安全原因不能这样做?

7个回答

12

尝试:

管理工具 -> 本地安全策略 -> 本地策略 -> 安全选项 -> 用户帐户控制:管理员批准模式下提升提示的行为 = 提升而不提示。


这是列出的最佳解决方案。适用于Windows 7。 - dmck
也适用于Windows 10。 - shamp00

3

在Vista上使用VS2005很痛苦,即使以管理员身份运行也会出现许多小问题。建议升级到2008版本,在Vista上的表现更佳。


3
我不得不关闭我的2008开发系统的UAC,尽管我也想使用它。需要跟踪每个应用程序的运行上下文才能使拖放窗口、与远程系统交互、调试场景或任何其他任务等功能正常工作,这太繁琐了。UAC在理论上是一个好主意,但似乎很少有人付出努力使其对真实世界的高级用户有用,最终的可行解决方案就是完全禁用它。
据说Windows 7将通过消除不断的提示而略微改善,但除非他们真正努力解决所有跨应用程序和远程访问问题,否则除了新手用户之外,它仍然是一个非起点。希望他们最终能使其实际可用。

2
天啊,跨应用程序问题最糟糕了 :(. 当以管理员身份运行时,我讨厌无法从VS拖放到文件系统。 - Domenic

2

很不幸,当UAC启用时,Windows Vista中必须进行UAC提示。

对我有用的一个解决方案是拥有升级的命令行和一堆非UI shell脚本,这些脚本从那里运行以执行某些任务。

另外,为了调试,我设置了另一台计算机,在那里我可以运行远程调试会话。使用VS 2005进行配置有点棘手,但好处是如果远程会话崩溃/挂起,它不会使您的主要计算机崩溃 :)

附注:如果可以,请尝试在Vista上使用VS 2008,它比VS 2005更好用一些。


“UAC提示在Windows Vista中是强制的” - 不是的。您可以在控制面板上将其关闭。 - Duncan Smart
1
但是,如果您启用了UAC,则这是强制性的。问题是关于禁用提示但保持UAC启用的,如果我没有表达清楚,对不起。 - Ismael
在这种情况下,您可以使用gpedit.msc或secpol.msc启用“静默提升”选项 - 如此处所述的“无提示”选项:http://technet.microsoft.com/zh-cn/library/cc507861.aspx - Duncan Smart

1
据我所知,你不能得到你想要的一切(UAC开启,VS无需提示工作)。
然而,有一个比“让别人用LUA测试”更好的解决方法:使用虚拟PC。使用微软免费提供的Virtual PC创建一个客户操作系统。安装Vista并设置一个普通用户以及默认管理员。使用普通(非提升)用户在VPC上测试您的应用程序。这至少可以让您早期发现LUA问题,而不会带来太多主要的头痛。
我同意这有点麻烦(我注意到VS2008在Vista或Win7 beta下不会出现UAC提示),但它就是这样。特别是在调试方面,VS2005需要提升才能附加到进程等。

这并没有解决我的主要问题,即在我的工作站上启用UAC。不过我很想知道 - 如果我安装一个虚拟PC,是否可以让我:
  • 运行DirectX应用程序(这是我正在开发的内容)
  • 从我的Visual Studio调试在VPC上运行的进程?
- Suma
你关于VS2008的评论很有趣。也许升级到VS2008可能是解决方案?当没有运行提升时,你能用VS2008进行调试吗? - Suma
1
在VPC中使用DirectX将非常糟糕。你可能能够做到,但性能会大幅下降。你是一个特殊情况,可能会遇到更多困难。是否可以设置一个标准用户帐户来运行应用程序进行LUA测试? - John Rudy
(这与调试是分开的,你仍然需要提升权限。)说到调试,我不是100%确定,因为我的工作室还没有完全转换到VS2008。 (我已经安装了它,但没有人在积极使用它 - 我们目前正在维护vs2005中的旧项目。) - John Rudy
是的,我可以在我的电脑上设置另一个 LUA,但实际上让测试人员和其他同事(不进行调试或运行 Visual Studio)这样做更容易。 - Suma
你可能会很遗憾地被困在那个世界里。 :( - John Rudy

0

就记录而言,我目前对这个问题的“解决方案”是:

  • 关闭UAC
  • 确保其他人定期使用标准用户帐户测试应用程序

...即使用在WindowsXP中有效的相同模式。

我希望看到其他的解决方案,但到目前为止,我尝试过的所有方法都没有给我想要的全部内容,即开启UAC,Visual Studio正常工作且运行VS时不提示。我想保持UAC开启,但每次运行工具时确认提升太麻烦了。


0
Norton 提供了一个有趣的工具来减弱UAC(用户账户控制)并使其更易于使用……但代价是程序运行反馈会发送到 Norton。这里有一篇很好的介绍文章:

http://www.betanews.com/article/New_Norton_Vista_tool_trades_UAC_for_online_feedback/1223668881

下载链接如下:

http://www.nortonlabs.com/inthelab/uac.php

最后,有一个有趣的小工具可以“暂停”UAC,它需要支付5美元(30天试用)。我无法保证这两个工具,因为我个人没有尝试过。

http://www.uacsnooze.com/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接