我在 C++ 中创建了一个 Windows 服务,当我尝试启动该服务时,我收到消息错误 5:访问被拒绝。
我的用户帐户设置为管理员,我什至尝试使用计算机上的默认管理员帐户,但仍然无法正常工作。
我可以通过cmd毫无问题地安装/卸载该服务,但我无法启动该服务
代码不是这里的问题,它是用户帐户。关于如何解决这个问题有什么建议吗?
最佳答案
“运行服务”不仅仅是“在我的桌面上启动一个程序”。它不一定以“你”的身份运行。
该服务与任何桌面分离,它实际上会忽略您的用户帐户。该服务将有自己的帐户/密码配置存储在操作系统中,当您运行它时,您只需命令它启动。它将以自己的用户帐户启动。如果您已将 .exe/.dll 文件放在某个 protected 文件夹中,并且您既没有为该文件配置访问权限,也没有为该服务配置用户密码,那么该服务很可能会尝试以默认服务用户运行“LocalService”或“NetworkService”之类的帐户,它根本无法访问文件。
如果您正确安装了该服务,请转到控制面板 - 管理工具 - 服务,找到您的服务并检查(如果我没记错的话)第二个选项卡并验证此处显示的用户名是否可以访问试图加载的文件并运行。如果用户名错误,请更正。如果您不关心用户名,那么只需查看该名称并设置文件夹和/或文件的访问权限,这样至少“读取目录内容”和“读取”和“执行”可用于那个用户名的服务尝试以运行身份。
关于c++ - 启动服务时报错5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15881385/