Windows编程-您是否应该启用UAC?


11

在Windows上进行开发时,建议的用户帐户控制(UAC)设置是什么?

即使在Win7上,我也觉得关闭它很烦人(因为它使我可以更高效地关闭它),但有时我会感到不舒服,因为我知道如果我继续打开它,将会在代码中发现更多问题。


“它可以在我的机器上工作!” 被告知开发人员有关其软件问题的经典答复。这可能是由于访问权限,硬件资源或已安装的库(然后是某些库)方面的差异。只需尝试了解与您的计算机相比用户计算机的可能限制,然后在发布之前测试是否可以。因为...“我们不运送您的机器!”
马丁·马特

Answers:


16

建议(即使是来自Microsoft的建议)也要使其保持打开状态,并在可能的情况下不任何提升地运行IDE

首先,它迫使程序员承受现实世界用户所具有的“烦恼”(如果您不知道,那么是否可以围绕它进行正确编程?)。

然后,禁用UAC并以管理员身份工作就像在Unix中以root身份工作一样糟糕(数十年的常识会告诉您为什么这样做很糟糕)。


4
Windows不是linux,这并不是一个很好的比较..
Thomas Bonini 2010年

9
@Kop:无论使用什么操作系统,以完全特权运行都是好事还是坏事……我看不出Windows和UNIX / Linux的不同之处。
Wizard79 2010年

1
@Brian:仍然有一些需要管理员权限的库(例如为Azure开发),但是绝大多数任务可以由非管理员完成。
Agent_9191'9

2
@Walter:您可以创建不高架的Windows服务。您需要提升的权限才能安装/卸载服务。无论如何,您永远都不应直接从IDE安装东西,因此提升的命令提示符会更好地工作,因为这将是IT专业人员最终会使用的东西。
Agent_9191'9

2
@zneak:你错了。从技术角度来看,成为管理员(或使用UAC的高级管理员)的root用户是完全一样的事情。当然,您不能在系统分区上使用format命令,但这只是UI选择。您可以使用格式化程序擦除系统分区或其他任何格式的第三方程序。
Wizard79 2010年

4

不管您是打开还是关闭程序,都应使用受限的用户帐户测试程序。这应该可以解决用户使用受限帐户或打开UAC运行程序时可能遇到的大多数问题。


问题是,如果您关闭了UAC,则应该使用专用计算机或虚拟机将其打开以进行测试。
Wizard79 2010年

即使关闭了UAC,受限帐户仍然可以让您测试受限特权。
明胶

2
你需要测试没有特权,特权unelevated场景。
Ben Voigt

4

我在Windows 7上运行,但保留了UAC,我的帐户不是真正的管理员帐户。因此,当我碰到UAC时,必须输入管理员密码才能继续。即使在Vista下,我也可以继续使用。我听说许多开发人员说它会妨碍您,但我还没有看到。在Vista下,这是一个更大的问题,因为几个区域的限制过于严格。

当开发人员说UAC妨碍我时,我总是会提出一个问题:“您在做什么,不断遇到它?”。如果尝试操作系统文件夹(Windows,Program Files,IIS站点)中的文件,则说明您做错了什么。IIS网站可以存在于C:\ inetpub之外。SQL Server用户数据库可以存在于程序文件之外。您应该定期看到UAC提示的唯一时间是应用程序的安装和更新。如果您经常看到它,则可能是针对系统而不是系统。


2
Visual Studio不允许您打开IIS托管的Web应用程序项目,除非它运行提升。
Heinzi 2012年

为了扩展@Heinzi的观点,如果我运行同一应用程序的两个版本(例如,两个SVN分支,每个分支存储在不同的位置),则您需要 VS studio才能将IIS设置为您正在使用的正确文件夹(即您在这两个中打开的最后一个解决方案)。没有提升的特权,您不仅必须手动更新IIS,而且冒着忘记和测试与正在开发(在VS中)完全不同版本的应用程序(在浏览器中)的风险
Flater

1

恕我直言,归结为你在做什么。

在我目前的工作中,我开发Web应用程序和Windows服务。因此,我发现自己的工作效率更高。如果我正在开发用户将要安装的应用程序,则将其保持打开状态,以便尽可能接近用户的体验。


离开UAC有何帮助?Web应用程序开发不应要求管理员权限,除非最初设置IIS。Windows服务将需要管理员权限才能启动和停止,但是通过单个命令窗口,net start/stop您只有一个UAC提示符。否则,您应该构建逻辑,以便拥有命令行运行程序和Win Service运行程序。
Agent_9191'9

它对开发没有帮助,但确实消除了UAC的烦恼。如果您不需要它来模拟低访问率,请将其关闭;否则将其保留

2
我相信,调试IIS中托管的Web应用程序需要提升的特权。
FinnNk 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.