以特权用户身份运行 Windows 服务
Posted
技术标签:
【中文标题】以特权用户身份运行 Windows 服务【英文标题】:Running a windows service as a privileged user 【发布时间】:2013-03-06 15:01:39 【问题描述】:我有一个用 c++ 编写的 Windows 服务,我需要它以特权权限开始,例如。管理员或系统。该服务需要访问 %SYSTEMROOT%、%USERPROFILES%、%TEMP% 等。 该服务将在 windows XP 和 7 下运行。
该服务将使用 GPO 部署,因此无法使用本地帐户。
我可以在服务本身中设置用户吗?如果,怎么做?如果没有,我该如何使用 GPO 部署它?
有什么想法吗? 谢谢
【问题讨论】:
【参考方案1】:您没有从服务(即从代码)设置用户。而是在部署/安装服务时设置运行服务的用户帐户。
您安装 Windows 服务的选项是
构建 MSI 包并利用 Windows Installer 基础架构 使用命令行手动部署(即我们使用批处理文件和sc
命令)
使用sc command 时,您可以使用以下命令设置服务的用户帐户:
sc config <servicename> obj= <accountname> password= <password>
通过 Windows Installer 部署时,您可以在 MSI 中配置用户帐户。
然后,您可以使用组策略通过 MSI 或其他方法远程安装/部署您的服务。
【讨论】:
以上是关于以特权用户身份运行 Windows 服务的主要内容,如果未能解决你的问题,请参考以下文章
Sudo漏洞允许非特权Linux和macOS用户以root身份运行命令
WiX ServiceInstall - 将服务设置为以当前 Windows 用户身份运行