代码之家  ›  专栏  ›  技术社区  ›  foson

以非管理员身份在vs中调试

  •  1
  • foson  · 技术社区  · 17 年前

    我正在做一些WinForms开发,运行XP和VS2005(我知道,很古老)。我想确保我的应用程序可以在没有管理员权限的情况下运行,但是我太懒了,无法以非管理员身份运行vs,我不想登录和退出来测试我的应用程序。

    有没有一种方法可以作为非管理员进行调试?

    是否有一组代码访问安全属性可以添加到我的代码中,以强制我以与非管理员相同的权限集运行?

    3 回复  |  直到 7 年前
        1
  •  2
  •   Phil Price    17 年前

    从当前登录的桌面会话中以其他用户身份运行vs。见 How to enable and use the "Run As" command when running programs in Windows . 这意味着您不必登录和注销。

    我建议您通过run as以另一个用户的身份运行目标应用程序,然后通过debug>attach to process将vs调试器附加到进程(如果需要)。Visual Studio中的菜单项。

        2
  •  0
  •   foson    17 年前

    基于Phil的答案,您可以通过将Startup项目设置为:

    启动外部程序: c:\windows\system32\runas.exe

    使用命令行参数: /noprofile /user:{MachineName}\{UserName} {ApplicationName}.exe

    不幸的是,我不认为有自动的方法可以将进程附加到vs调试程序(由于安全警告),而是通过有条件地调用

    #if (DEBUG) 
        System.Diagnostics.Debugger.Launch();
    #endif
    

    系统将提示您通过两次单击附加到调试器。

        3
  •  0
  •   palswim    16 年前

    以一个更为根本的改变来接近这一点:

    如果启用计算机以允许并发远程桌面会话( Vista , XP ,对其他人使用google),然后启动远程桌面会话到127.0.0.2,您可以在本地系统上以完全不同的用户身份运行,使您无需在用户之间切换就可以随心所欲地进行操作。

    对于我来说,我通常以非管理用户的身份运行,但每当需要运行管理任务时,我都会以管理员的身份启动远程桌面会话。但是,你可以很容易地做相反的事情。