我目前正在创建一个 Windows 服务应用程序,它将监视对 HKEY_USERS 注册表中某些键的更改。我这样做的方法是收集当前用户的 SID。我遇到的问题是,由于当前作为本地系统运行的服务,它返回了管理员 SID。
我需要系统做的是收集并返回当前登录用户的 SID(我指的不是本地服务、本地系统或网络服务,而是通过 GINA 登录 Windows 的人),所以我需要该服务做的是以该用户身份运行。这也将允许服务写回用户网络驱动器,这是该程序的目的。
我遇到的问题是,当我尝试使用 installutil.exe 安装用户服务时,它要求输入用户名和密码,现在我已经尝试了我自己的凭据(我有一个管理员和非管理员帐户)但是它没有任何内容加上我希望用户根据登录的人进行更改而不是固定的。有什么办法吗?
最佳答案
“ 当前用户”假设是桌面 Windows 概念,而对于快速用户切换,即使这样也不再成立。 Windows 服务层在桌面和服务器变体中相当普遍,并不能很好地处理这个问题。它位于交互式 session 层之下。这表现出来的一种方式是即使有零用户登录也能运行服务。
关于c# - 以用户身份安装 Windows 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1721679/