【问题标题】:How to run an executable as a system service?如何将可执行文件作为系统服务运行?
【发布时间】:2011-01-29 19:18:22
【问题描述】:

我有一个用 .NET 2.0 编写的文件和数据分发应用程序,我编写的类似于 Steam。

此应用程序需要在 Windows 7 中运行,并且需要能够运行和安装需要管理员权限的应用程序。但是,用户将没有管理员权限。

我的想法是将应用程序作为本地系统服务运行。我认为通过这样做,应用程序可以在用户不是管理员时执行管理员权限操作(注册表编辑、启动应用程序等)。

我的假设是否正确?我需要采取哪些步骤才能将此应用程序安装为本地系统服务?

管理员将安装应用程序,但它将由没有管理员权限的用户运行。

提前致谢!

【问题讨论】:

    标签: .net service system rights administrator


    【解决方案1】:

    仅仅作为服务运行可能还不够;您通常不能只使用一个应用程序(尤其是交互式应用程序)并抛出一个开关并使其成为服务。

    这方面的一般模式是拆分您的应用程序:UI 像往常一样按需运行,具有用户的权限,并且还有一个运行的持久性服务与 UI 通信。通常,这种拆分是针对权限问题(例如您的问题)或即使在 UI 关闭时也能够执行操作。

    在您的情况下,您可能无法使用该服务来启动应用程序,因为该服务通常无法访问已登录用户的桌面。它也无法(轻松)访问注册表中的 HKEY_CURRENT_USER 配置单元,因为本地系统是与桌面用户不同的帐户。

    【讨论】:

    • 如果服务不能解决问题,还有哪些替代方法可用?是否可以在 Windows 7 中将单个应用程序设置为在提升的 UAC 模式下运行(假设管理员设置它)而无需用户交互(IE 使用管理员登录凭据)?
    猜你喜欢
    • 2017-02-09
    • 2013-11-18
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 2021-03-10
    • 2023-03-19
    • 2015-06-14
    • 1970-01-01
    相关资源
    最近更新 更多