如何在 Windows 10 上启动没有管理员权限的帐户提升的应用程序

问题描述 投票:0回答:1

我需要在没有管理员权限的用户帐户上启动提升的应用程序。我使用的是 Windows 10。该站将有两个用户帐户:管理员和操作员。所有应用程序都将使用管理员帐户安装(当然具有管理员权限)。之后用户将使用操作员帐户。

我需要应用程序以提升的权限运行,但没有 UAC 提示。

我尝试了以下方法:

  • 使用 Windows 服务运行应用程序。这会带来一个问题,因为应用程序有 GUI,而且我找不到会话 0 隔离的解决方法。
  • 使用任务计划程序运行应用程序。这也失败了,因为应用程序是在没有 GUI 的情况下启动的。
  • 使用runas。也失败了,因为我面临着处理密码和 UAC 提示以及一些“访问被拒绝”问题。

我知道上述一些方法可能被视为不好的做法。我了解潜在的风险。此外,我的应用程序在信息亭模式下的专用计算机上运行,最终用户无法与操作系统交互。

欢迎任何帮助或提示(也关于我失败的方法)!

c# windows-10 uac elevated-privileges session-0-isolation
1个回答
0
投票

我很久以前就开发过类似的应用程序,我使用任务计划程序技巧在以管理员权限登录后启动我的应用程序。我使用 C# (.NET 4.0) WinForms 作为应用程序,它启动没有问题(登录后 GUI 正常启动)。

创建任务:

Schtasks /Create /TN [admin username] /RU SYSTEM /SC ONLOGON /TR [path to the app]

还要确保您拥有正确的 app.manifest 以及正确的

supportedOs
requestedPrivilege

如果您尝试过任务计划程序方法,但看不到您的应用程序 GUI,请检查任务管理器您的应用程序是否确实在没有 GUI 的情况下运行。您还可以使用 Sysinternals Spy++ 将应用程序窗口置于前台。

完全不同的方法是将您的应用程序分为两部分。一个作为与目标系统交互的 Windows 服务,以及一个调用 Windows 服务(可能通过命名管道或套接字)来执行某些需要管理员权限的操作的 GUI 应用程序。

参考资料:

© www.soinside.com 2019 - 2024. All rights reserved.