您可以强制 Visual Studio 在 Windows 8 中始终以管理员身份运行吗?

Posted

技术标签:

【中文标题】您可以强制 Visual Studio 在 Windows 8 中始终以管理员身份运行吗?【英文标题】:Can you force Visual Studio to always run as an Administrator in Windows 8? 【发布时间】:2012-08-28 17:41:09 【问题描述】:

在 Windows 7 中,您可以进入程序兼容性设置并勾选始终以管理员身份运行。 Windows 8 中是否有类似的选项?

我一直在我的机器上禁用 UAC,并且在我的 Windows 8 升级后也这样做了,或者我是这么认为的。原来没有off 选项,只关闭通知。

这意味着尽管在管理员组中,但没有任何内容以管理员身份运行。当我尝试调试(附加到进程,而不是 F5)时,我需要继续关闭并重新打开我的控制台\Visual Studio,这非常令人沮丧。

当我第一次去调试时,我需要记住采取额外的步骤以管理员身份打开它,或者告诉它关闭并重新打开,这真的很烦人。

【问题讨论】:

我认为这是一个有效的问题,但我认为您也应该向 SuperUser 提问 - 可能会有一个普遍的答案。 如果VS需要以管理员身份启动,那么你的文件权限不对。禁用 UAC 很容易搞砸。 @Keats 需要管理员权限才能在 IIS 上运行 ASP.NET 应用程序(因为它会尝试自动创建虚拟目录等) @camelBase 我觉得,程序应该只在需要时才以管理员身份运行。通常它们应该在较低的权限下运行。我就是这么做的。 你真的不应该这样做,因为如果你使用 2 个项目并且只有一个需要以管理员身份运行,你不应该以管理员身份启动另一个实例。 【参考方案1】:

在 Windows 8 和 10 中,您必须右键单击 devenv.exe 并选择“疑难解答兼容性”。

    选择“疑难解答程序” 勾选“程序需要额外权限” 点击“下一步” 点击“测试程序...” 等待程序启动 点击“下一步” 选择“是,保存此程序的这些设置” 点击“关闭”

如果打开 Visual Studio 时要求保存对 devenv.sln 的更改,请参阅此答案以禁用它:

Disable Visual Studio devenv solution save dialog


如果您改变主意并希望撤消“以管理员身份运行”兼容性设置,请在此处查看答案:How to Fix Unrecognized Guid format in Visual Studio 2015

【讨论】:

这是我遇到的最好的解决方案。现在我可以再次从 Windows 资源管理器打开 .sln 文件了! 同样,它还解决了能够以管理员身份运行的固定解决方案。谢谢。 如果您安装了多个版本的 Visual Studio,您可能还希望在 C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\VSLauncher.exe 文件上执行此操作。此外,devenv.exe 文件的默认路径是:Visual Studio 2010 - C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe。 Visual Studio 2012 - C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe 你如何将它恢复到原来的样子? @RobertKoritnik 这相当于在HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers 下添加名称为C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe 和值RUNASADMIN 的注册表项。删除条目会恢复设置。【参考方案2】:

查看超级用户后,我找到了this question,它解释了如何使用开始屏幕上的快捷方式执行此操作。同样,当 Visual Studio 固定到任务栏时,您也可以这样做。在任一位置:

    右键单击 Visual Studio 图标 转到PropertiesShortcut tab 下选择Advanced 查看Run as administrator

与 Windows 7 不同,这仅在您从更改的快捷方式启动应用程序时才有效。更新两个 Visual Studio 快捷方式后,当您从资源管理器打开解决方案文件时,它似乎也可以工作。

更新警告: 看起来以提升的权限运行 Visual Studio 的主要缺陷之一是因为资源管理器也没有与它们一起运行,因此您无法将文件拖放到 Visual Studio 中进行编辑。您需要通过文件打开对话框打开它们。你也不能双击任何与 Visual Studio 关联的文件并在 Visual Studio 中打开它(除了看起来的解决方案),因为你会收到一条错误消息,说 There was a problem sending the command to the program. 一旦我取消选中总是以提升的权限开始(使用 VSCommands)然后我可以直接打开文件并将它们放入 Visual Studio 的打开实例中。

勇敢者更新: 尽管没有像过去那样关闭 UAC 的 UI,但至少我看到了,您仍然可以通过注册表来关闭 UAC。编辑的关键是:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
EnableLUA - DWORD 1-Enabled, 0-Disabled

更改此 Windows 后会提示您重新启动。重新启动后,如果您是管理员,您将回到以管理员权限运行的所有内容。我上面报告的问题现在也没有了。

【讨论】:

如果您关闭 UAC,某些 Metro 应用程序(如 SkyDrive)将不再工作。 对于 Windows 8,TigerShark 下面的答案(在资源管理器中右键单击 devenv.exe,疑难解答..)似乎是一个更完整的解决方案。 @ClaraOnager 右键单击​​开始屏幕中的图标并选择“打开文件位置”。这将打开保存快捷方式的文件夹,然后您可以从那里查看它的属性。 @Boomerangertanger 哦不,不是我的地铁应用程序! 讽刺> 地铁应用程序摇滚。结束。【参考方案3】:

注意在最近的 VS 版本(2015 年以上)中,此扩展似乎不再存在/具有此功能。


您还可以下载 Squared Infinity 的 VSCommands for VS2012,它具有将其更改为以管理员身份运行的功能(以及其他一些很酷的点点滴滴)

更新

可以使用 Tools->Extensions and Updates 选择 Online 并搜索 vscommands 从 Visual Studio 菜单栏中安装命令,然后根据使用 2012 或 2013(或更高版本)选择 VSCommands for Visual Studio 20XX继续)并下载并安装。

【讨论】:

我在更新快捷方式权限后安装了它,所以我不确定它有什么不同。除了管理员权限外,这个插件还有一些不错的功能值得自己检查。 当您从任务栏快捷方式的快速访问菜单启动项目时,VSCommands 功能也有效。很棒的东西! @BrianSurowiec 它做了什么它在 VS 的启动中添加了一些东西,这样如果它没有以管理员身份运行,它会杀死自己并以管理员权限启动一个新实例 @DaveInCaz 很遗憾是真的。我想他停止了。我已经编辑了答案以说明这一点。【参考方案4】:
    在 Windows 8 开始菜单中选择所有应用程序 右键单击 Visual Studio 2010 图标 选择打开文件位置 右键单击 Visual Studio 2010 快捷方式图标 点击高级按钮 选中以管理员身份运行复选框 点击确定

【讨论】:

很好的答案,但仅在从图标启动时才有效,而不是在您右键单击图标并启动固定解决方案时。在 Windows 8 和 10 上尝试过,到目前为止,只有故障排除方法对我有用,才能启动固定的解决方案。【参考方案5】:

这是my answer to a similar post on SuperUser的副本:

选项 1 - 将 VSLauncher.exe 和 DevEnv.exe 设置为始终以管理员身份运行

让 Visual Studio 始终以管理员身份运行在打开任何 .sln 文件时

    导航到C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\VSLauncher.exe。 右键单击VSLauncher.exe 并选择疑难解答兼容性。 选择疑难解答程序。 勾选程序需要额外权限,然后点击下一步。 点击Test the program...按钮启动VS。 点击下一步,然后点击是,保存此程序的这些设置,然后点击关闭按钮。

要让 Visual Studio 始终以管理员身份运行直接打开 Visual Studio 时,对 DevEnv.exe 文件执行相同的操作。这些文件位于:

Visual Studio 2010

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe

Visual Studio 2012

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe

Visual Studio 2013

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe

Visual Studio 2015

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe

Visual Studio 2017

C:\Program Files (x86)\Microsoft Visual Studio\2017\[VS SKU]\Common7\IDE\devenv.exe

选项 2 - 为 Visual Studio 使用 VSCommands 扩展

安装免费的VSCommands extension for Visual Studio(位于the Visual Studio Extensions Gallery),然后通过转到工具-> VSCommands-> 选项-> IDE 增强功能-> 常规并勾选@,将其配置为始终以管理员权限启动Visual Studio 987654332@ 并点击保存按钮。

注意:VSCommands 目前不适用于 VS 2015,但他们的网站表示他们正在努力对其进行更新以支持 VS 2015。

我的意见

我更喜欢选项 2,因为:

它还允许您轻松关闭此功能。 VSCommands 带有许多其他很棒的功能,所以我总是安装它。 它比选项 1 更容易做到。

【讨论】:

Windows 10 - 每次我打开 .sln 文件 VS 2015 都会询问我是否要保存对 devenv.exe 的更改 @FrenkyB 您是否执行了针对 VS 2015 的选项 1 列出的步骤?将其设置为以管理员身份运行应该可以解决该问题。 ***.com/a/14423461/602585 现在可以使用了。我刚刚保存了 devenv.exe,它不再抱怨了。【参考方案6】:

当我在 Visual Studio 2012 旁边安装 Visual Studio 2010 时,VSCommands 对我不起作用并导致问题。

经过一些实验,我找到了诀窍:

转到HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers 并添加一个名称为"C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\VSLauncher.exe" 和值"RUNASADMIN" 的条目。

这应该可以解决您的问题。我也已经blogged 了。

【讨论】:

出于某种原因,这对我不起作用,但在 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers 中添加条目反而起到了作用。 这个答案在功能上与前两个不同吗?【参考方案7】:

我知道这有点晚了,但我只是想出了如何通过修改(阅读,“破解”)devenv.exe 文件的清单来做到这一点。我应该先来这里,因为所述解决方案似乎更容易一些,并且可能更受 Microsoft 的支持。 :)

我是这样做的:

    在 VS 中创建一个名为“Exe Manifests”的项目。 (我认为任何版本都可以使用,但我使用的是 2013 Pro。另外,你给它起什么名字并不重要。) “添加现有项”到项目中,浏览到 Visual Studio exe,然后单击“确定”。就我而言,它是“C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe”。 双击“devenv.exe”文件,该文件现在应列为项目中的一个文件。它应该在资源编辑器中调出 exe。 展开“RT_MANIFEST”节点,然后双击该节点下的“1”。这将在二进制编辑器中打开可执行文件的清单。 找到requestedExecutionLevel 标记并将“asInvoker”替换为“requireAdministrator”。阿拉:<requestedExecutionLevel level="requireAdministrator" uiAccess="false"></requestedExecutionLevel> 保存文件。

您刚刚保存了添加到项目中的可执行文件的副本。现在您需要备份原始文件并将修改后的 exe 复制到您的安装目录。

正如我所说,这可能不是正确的方法,但它似乎有效。如果有人知道需要发生任何负面影响或必要的手腕拍打,请插话!

【讨论】:

如果您这样做,那么将无法以 LUser 身份运行应用程序,并且不应允许以管理权限运行任何内容,除非出于已知的、良好的原因(例如作为自动配置 IIS)【参考方案8】:

如果您像我一样使用 Total Commander,您应该为 Total Commander 始终以管理员身份运行。然后您将能够在同一个 SQL Server 管理实例中双击打开 sql 文件,或者双击打开任何 Visual Studio 文件而不打开多个实例。

此疑难解答程序将注册表值添加到任何程序的 HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers,因此如果您想直接编写它,您可以。

【讨论】:

它基本上向该注册表路径添加了一个新的字符串值,名称是可执行文件的完整路径(不带引号),数据为RUNASADMIN,以防你想这样做手动。【参考方案9】:

我在 EightForums (Option 8) 上找到了一个简单的方法,在 HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers 下创建一个字符串值。将名称设置为程序的路径,并将值设置为 ~RUNASDMIN。 下次打开程序时,它会以管理员身份打开

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
    "C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\Common7\\IDE\\devenv.exe"="~RUNASADMIN"

【讨论】:

【参考方案10】:

另外,您可以查看compatibility troubleshooting

右键单击 Visual Studio > 选择疑难解答兼容性。 选择疑难解答程序。 检查程序需要额外的权限。 点击测试程序。 稍等片刻,直到程序启动。点击下一步。 选择是,保存此程序的这些设置。 等待解决问题。 确保最终状态是固定的。点击关闭。

Visual Studio requires the application to have elevated permissions 查看详细步骤以及始终以管理员身份打开 VS 的其他方法。

【讨论】:

在 Windows 10 上解决了我的问题。谢谢。【参考方案11】:

只需在 Program Files 目录(或其他位置)中找到该程序。右键单击EXE文件,在底部的第二个选项卡上选中强制以管理权限运行该程序的复选框。 从现在开始,exe 文件的所有快捷方式都将以管理员权限触发:)

【讨论】:

这适用于“属性”窗口具有“兼容性”选项卡的所有系统,Windows 8 没有(尽管 Windows 8.1 有)。【参考方案12】:

如果项目的应用程序清单指定了管理requestedExecutionLevel,Visual Studio 会自动提升自身,因此您只需对其进行编辑。 Visual Studio 会检测到这一点,并在需要时以管理员身份重新启动。

【讨论】:

【参考方案13】:

这些都不适合我。我一直以管理员身份启动它的方式是修改注册表。

1. Just start regedit.exe.
2. Navigate to Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
3. Right Click New->String Value
4. Add C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\devenv.exe (or the correct path for your system)
5. Right Click on this entry and select Modify.
6. Add for Value Data: ~ RUNASADMIN.

全部完成。

【讨论】:

这行得通,谢谢。

以上是关于您可以强制 Visual Studio 在 Windows 8 中始终以管理员身份运行吗?的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 上的紧凑代码

visual studio 2008有64位的吗?我win 7 x64系统,怎么装 vs2008

出现microsoft visual c  Runtime library错误win7 32位旗舰版

visual studio 2010 一个解决方案里有多个c++源文件 怎么只执行其中一个?

Visual Studio 中的命令行 - 如何关闭弹出窗口?

Microsoft Visual Studio 2008怎样编写C++