繁体   English   中英

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

[英]Debug application without admin rights in Visual Studio

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

我想要的是一种无需管理员权限即可调试我的应用程序的方法,以便我可以确定在以普通用户身份运行时导致它失败的原因...一种无需管理员权限即可运行的方式。

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

在此处输入图片说明

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

在此处输入图片说明

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

在此处输入图片说明

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

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

有没有没有管理员权限的调试方法?

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

  1. “管理员运行”复选框随处可见(每个快捷方式和exe文件) 未选中
  2. 同样在“疑难解答兼容性”对话框中,“该程序需要其他权限” 未选中

解决方案

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

  1. 右键单击devenv.exe > Properties
  2. 转到“ 安全”选项卡。
  3. 单击高级 (在那里,管理员是文件的所有者,在我的情况下)
  4. 因此,请单击“ 更改”以将文件的所有者编辑为您的用户帐户。

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

不幸的是,这必须在每次更新后完成。

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

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

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

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

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

有关此案例的其他信息。

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

因此,我认为,如果没有管理员权限,我怎么可能暂时启动我的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文件直接从调试文件夹启动相同的代码,它工作正常。

谢谢你的好提示。

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

我在使用 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

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM