【问题标题】:Run code as non-administrator以非管理员身份运行代码
【发布时间】:2015-01-04 07:42:57
【问题描述】:

我正在编写调用IApplicationActivationManager interface 来打开Windows 商店应用程序的代码。

我得到错误:

"[Name of App] can't run while File Explorer is running with Administrator privileges..."

我必须以非管理员身份启动我的应用程序。我也不控制调用我将创建的 .exe 的代码使用的管理员上下文。所以,两个问题:

我可以(通过更改项目设置或其他方式)以非管理员身份进行调试吗?

我可以强制我的 exe 以非管理员身份运行吗? (当它在野外时)

C4ud3x 有用地指出,这可以添加到 app.manifest。这是真的,但不幸的是,如果调用者允许它仍然以管理员身份运行(它实际上是默认值)。看起来 asInvoker 也是lowest value

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

编辑: 很好,我接受第一个问题的唯一答案是不要以管理员身份运行视觉工作室。感谢您为此提供的所有帮助。

【问题讨论】:

  • 我以为默认的是被调试对象不以管理员身份运行?
  • 我不明白是什么阻止了你。你能详细说明问题是什么吗?
  • 请提供更多信息。重要部分是例如使用的 MS Windows 版本以及是否启用了 UAC。如果是后者,并且您在清单文件中不需要管理员权限,则程序应该在没有管理员权限的情况下运行。
  • 如果您以管理员身份启动调试器,则以管理员身份启动您的应用程序...所以您不应该以管理员身份运行调试器...(如果您启动任何进程从以管理员身份运行的进程中,您也以管理员身份运行该新进程,无法乘坐电梯。)

标签: c# visual-studio windows-8.1 user-permissions


【解决方案1】:

在您的项目浏览器中展开“属性”并打开您的“app.manifest”。 您可以在此处添加此行:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

'AsInvoker' 表示应用程序以登录用户的权限级别启动。

此行应该已经自动生成并在您的清单中注释掉。

编辑:
啊,等等。调试时需要以非管理员身份运行???不知道权限在调试模式下的行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 2016-09-20
    • 2010-11-26
    • 2012-05-28
    相关资源
    最近更新 更多