如何为Golang编写的Windows服务配置指定登录用户账号
配置调整方案
你遇到的报错是Windows系统无法正确校验传入的账户凭证导致,按以下规则调整service.Config配置即可:
- 用户名必须补充域/主机前缀:本地账户格式为
.\你的用户名,域账户格式为域名\你的用户名,不能仅填写纯用户名 - 密码传递的键名无需调整,
service.KeyValue中使用password作为键是Windows平台的标准写法
正确配置示例
service.Config{ // 保留你原有配置的Name、DisplayName、Description等基础字段 Username: `.\myusername`, // 本地用户前面加.\前缀,用反引号避免转义 Option: service.KeyValue{ "password": "mypassword", }, }
额外校验项
如果调整格式后依然报错,请确认以下前提:
- 你填写的用户名、密码完全正确,对应账户在当前系统真实存在
- 该账户已被授予「作为服务登录」权限:可打开本地安全策略(运行
secpol.msc),依次进入「本地策略 -> 用户权限分配 -> 作为服务登录」,将目标账户添加到列表中 - 安装服务时必须以管理员身份执行安装命令,否则会出现权限不足导致的账户校验失败
- 如果你不需要指定普通用户,使用内置系统账户运行时无需填写密码,直接将Username设为
LocalSystem、NT AUTHORITY\NetworkService等内置账户名即可
内容的提问来源于stack exchange,提问作者user9716692
相关产品推荐
相关产品推荐

