调试Visual Studio中没有管理员权限的应用程序

时间:2017-02-13 20:19:28

标签: c# debugging visual-studio-2015

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

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

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

enter image description here

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

enter image description here

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

enter image description here

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

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

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

6 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

Visual Studio安装有问题。它可以肯定无需管理员运行。但是,你可以解决这个问题。

  1. 根据需要启动您的应用,但不是从Visual Studio中启动,而是导航到内置的.exe,例如双击它。
  2. 使用Visual Studio中的Attach to process选项附加到进程。
  3. 如果您的应用程序很快失败,这当然不起作用,您将需要查看Visual Studio设置。

答案 2 :(得分:1)

所以问题是它仍然以管理员的身份打开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

答案 3 :(得分:0)

有关此案例的其他信息。

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

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

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

        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文件直接从debug文件夹中启动相同的代码,并且该代码正常工作。

感谢良好的提示。

答案 4 :(得分:0)

从一天到另一天,我都遇到了VS 2019的相同问题。

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

解决方案:
更改devenv.exeC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.exe)的所有权:

  1. 右键单击devenv.exe> 属性
  2. 转到安全标签。
  3. 点击高级。 (在我的情况下,管理员是文件的所有者)
  4. 因此,单击更改将文件的所有者编辑为您的用户帐户。

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

答案 5 :(得分:0)

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

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

我尝试了许多推荐的解决方案,但对我不起作用。问题是 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

enter image description here