我有一个用.NET 2.0编写的文件和数据分发应用程序,我写的类似于Steam。
此应用程序需要在Windows 7中运行,并且需要能够运行和安装需要管理员权限的应用程序。但是,用户将没有管理员权限。
我的想法是将应用程序作为本地系统服务运行。我想通过这样做,当用户不是管理员时,应用程序可以执行管理员权限操作(注册表编辑,启动应用程序等)。
我的假设是否正确?将此应用程序安装为本地系统服务需要采取哪些步骤?
管理员将安装该应用程序,但它将由没有管理员权限的用户运行。
提前致谢!
答案 0 :(得分:2)
仅仅作为服务运行可能还不够;你通常不能只拿一个应用程序(特别是一个交互式应用程序)并抛出一个开关并使其成为一项服务。
此区域的一般模式是拆分您的应用程序:UI像往常一样按需运行,具有用户的权限,并且还有一个与UI通信运行的持久性服务。通常,此分割是针对权限问题(如您的)进行的,或者即使在UI关闭时也能够执行操作。
在您的情况下,您可能无法使用该服务启动应用程序,因为该服务通常无法访问登录用户的桌面。它也不会(轻松)访问注册表中的HKEY_CURRENT_USER配置单元,因为本地系统是一个与桌面用户不同的帐户。