如何将可执行文件作为系统服务运行?

时间:2010-03-20 13:32:22

标签: .net service system rights administrator

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

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

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

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

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

提前致谢!

1 个答案:

答案 0 :(得分:2)

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

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

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