到目前为止,我的 C# 服务终于完成了它应该做的所有事情,除了由于安装程序代码中的以下内容而明显存在一些访问问题之外:
processInstaller.Account = ServiceAccount.LocalSystem;
通常情况下,这看起来像是遵循简单指示的时候 here ,但在这种情况下,最终用户不知道自己的密码——使用智能卡进行登录。在这样一台机器上,我似乎可以到处跑,愉快地安装我想要的任何应用程序,而且当我注销时,我的进程似乎运行得很好。
有什么方法可以向服务授予安装它的用户的权限,而不将它们编译到代码中或提示它们吗?
这最初是一个不错的小托盘应用程序,但后来发现它需要能够在用户重新启动计算机并且在有权访问用户个人信息时尚未登录的情况下运行文件和网络共享。
最佳答案
抱歉,如果没有提示,则无法以这种方式完成。
参见Install Windows service to run under user's credentials with ServiceAccount.User but don't prompt
唯一的其他选择是作为网络服务运行并限制您的权限。
关于C# 使用当前用户权限处理安装而不提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7650836/