【问题标题】:Debug application without admin rights in Visual Studio在 Visual Studio 中调试没有管理员权限的应用程序
【发布时间】:2017-07-01 22:54:43
【问题描述】:

我有一个打算在没有管理员权限的情况下运行的应用程序,但在这种情况下它会失败。我试图以管理员身份运行我的应用程序,它运行。但这不是我想要的。

我想要的是一种在没有管理员权限的情况下调试我的应用程序的方法,这样我就可以确定在以普通用户身份运行时导致它失败的原因......这样我至少知道是什么原因,并且可能以无需管理员权限的方式运行。

每当我运行 Visual Studio 2015 时,它都会以管理员权限启动。无法摆脱标题栏中的(Administrator)

我试过runas /netonly /user:User devenv.exe无济于事:

如果我尝试在另一个更受限制的帐户下运行 VS2015,它说它需要管理权限,并且不会运行:

点击“取消任务广告返回Visual Studio”不会返回VS,而是会关闭。

问题是当我在没有管理员权限的情况下运行我的应用程序时,它不会打开。没有消息。没有。但是当我尝试在 Visual Studio 中调试它时,它会运行......因为 VS 本身只能以管理员身份运行。

有没有办法在没有管理员权限的情况下进行调试?

【问题讨论】:

  • 为您运行的 Windows 用户关闭您的用户帐户控制权限怎么样?或暂时取消该用户的管理员权限(这需要注销/登录周期才能生效)?
  • 我会尝试一下...等一下,因为我必须学习如何做到这一点。谢谢!
  • 你看了吗this
  • 是的,我有...当不处于管理模式时,应用程序运行的时间不足以让我附加调试器。此外,旧版本的 VS 似乎无需管理员权限即可运行,而 VS 2015 则没有。
  • 更改 UAC 设置无效。它只是在打开之前要求海拔高度。

标签: c# debugging visual-studio-2015


【解决方案1】:

如果你右键单击快捷方式并选择属性,然后选择快捷方式选项卡,有一个高级按钮。单击它,然后您可以选择他的应用程序不以管理员模式启动。另外,请注意,如果您使用的是 iis,则需要 VS 在管理员模式下运行才能进行调试。

【讨论】:

  • 我只需要在使用 iis 调试应用程序时选中该复选框。 Windows 服务不需要提升权限,桌面应用程序也不需要。您的应用程序在做什么需要提升权限?我会从那里开始。 Visual Studio 不需要管理员权限来调试基础 vanilla 应用程序。
  • 这就是问题所在......我不知道,一些第 3 方库需要管理员权限......我只是无法调试以发现它是哪一个。
  • 我的应用是桌面,Windows 窗体。
  • 当你这样做时,你的 VS 会在标题栏中没有“(管理员)”的情况下打开吗?我无法在这里实现。
  • 老实说,我已经很久没有在管理员模式下运行 VS 2015 了。我刚刚回去检查了我维护的 Windows 服务,并尝试在非管理员模式下运行并调试它没有任何问题。它没有提示我提升凭据。
【解决方案2】:

您的 Visual Studio 安装有问题。它肯定可以在没有管理员的情况下运行。但是,您可以解决此问题。

  1. 根据需要启动您的应用程序,但不是从 Visual Studio 中启动,而是导航到已构建的 .exe,例如双击它。
  2. 使用 Visual Studio 中的Attach to process 选项附加到进程。

如果您的应用很快失败,这当然不会起作用,您需要查看您的 Visual Studio 设置。

【讨论】:

    【解决方案3】:

    所以问题是它仍然以管理员身份打开 VS,即使你只是打开你身边的空白 VS IDE,对吗?

    请确保您没有启用兼容性疑难解答下的“程序需要额外权限”或 VS IDE 快捷方式或 devenv.exe 的属性设置:

    https://blog.devoworx.net/2016/01/06/this-task-requires-the-application-to-have-elevated-permissions/

    https://superuser.com/questions/547810/how-to-turn-off-always-run-as-administrator-windows-8

    【讨论】:

      【解决方案4】:

      有关此案例的更多信息。

      我在工作中的 IT 系统非常受限,通常我的 VS 在没有管理员权限的情况下启动。但是,为了允许我安装更新等。我请求将我的 .exe 放在以管理员权限开头的软件列表中。那事发生了。适合更新。

      因此,我认为,我不可能在没有管理员权限的情况下临时启动我的 VS

      我在尝试通过以下代码从控制台应用程序使用 Outlook 互操作时遇到了类似的问题:

              Outlook.Application application = null;
      
              // Check whether there is an Outlook process running.
              if (Process.GetProcessesByName("OUTLOOK").Count() > 0)
              {
                  // If so, use the GetActiveObject method to obtain the process and cast it to an Application object.
                  application = Marshal.GetActiveObject("Outlook.Application") as Outlook.Application;
              }
              else
              {
      
                  // If not, create a new instance of Outlook and log on to the default profile.
                  application = new Outlook.Application();
              }
      
              // Return the Outlook Application object.
              return application;
      

      当 VS(以及我的控制台应用程序)以管理员权限启动但 Outlook 未启动时,我收到以下错误:

      System.Runtime.InteropServices.COMException (0x800401E3): Operation unavailable (Exception from HRESULT: 0x800401E3 (MK_E_UNAVAILABLE))
      

      然后我尝试通过运行 .exe 文件直接从调试文件夹启动相同的代码,并且它工作正常。

      感谢您的好提示。

      【讨论】:

        【解决方案5】:

        从一天到另一天,我在 VS 2019 中遇到了同样的问题。

        1. “以管理员身份运行”复选框无处不在(每个快捷方式和 exe 文件)未选中
        2. 同样在“疑难解答兼容性”对话框中,“程序需要额外权限”未选中

        解决方案

        更改devenv.exe (C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.exe) 的所有权:

        1. 右击devenv.exe > 属性
        2. 转到安全选项卡。
        3. 单击高级。 (在我的例子中,管理员是文件的所有者)
        4. 所以点击更改将文件的所有者编辑为您的用户帐户。

        现在 Visual Studio 在没有管理员权限的情况下启动,因此也没有调试权限。

        很遗憾,每次更新后都必须这样做。

        【讨论】:

          【解决方案6】:

          这是一篇旧帖子,但我想添加我的意见,因为我的解决方案有点不同,可能会对某人有所帮助。

          我在使用 Windows 10 的 Visual Studio 2019 中遇到了类似的问题。当我按 F5(调试)时,提示“此任务需要应用程序具有提升的权限”消息。

          我尝试了许多推荐的解决方案,但对我不起作用。问题是 iisexpress.exe 的“IIS Express 工作进程”设置被设置为“以管理员身份运行”。我正在尝试修复端口绑定问题并进行了一些我忘记撤消的更改。

          Run project in Visual Studio with Administrator permission and then 
          Open task manager > Processes > expand Visual Studio 2019 node > right click on 'IIS Express Worker Process'> properties> Compatibility > uncheck Run as Administrator option
          

          【讨论】:

            猜你喜欢
            • 2012-12-06
            • 2012-11-27
            • 1970-01-01
            • 1970-01-01
            • 2015-05-07
            • 1970-01-01
            • 1970-01-01
            • 2015-05-09
            • 2014-10-05
            相关资源
            最近更新 更多