服务用户帐户

每个服务在用户帐户的安全上下文中执行。 帐户的用户名和密码在安装服务时由 CreateService 函数指定。 可以使用 ChangeServiceConfig 函数更改用户名和密码。 可以使用 QueryServiceConfig 函数获取用户名 (但不能获取与服务对象关联的密码) 。 服务控制管理器 (SCM) 会自动加载用户配置文件。

启动服务时,SCM 会登录到与该服务关联的帐户。 如果登录成功,系统会生成访问令牌并将其附加到新的服务进程。 此令牌标识与安全对象的所有后续交互中的服务进程, (具有) 关联的安全描述符的对象。 例如,如果服务尝试打开管道的句柄,系统会在授予访问权限之前将服务的访问令牌与管道的安全描述符进行比较。

SCM 不维护服务用户帐户的密码。 如果密码已过期,则登录失败,服务无法启动。 将帐户分配到服务的系统管理员可以使用永不过期的密码创建帐户。 管理员还可以使用 服务配置程序 定期更改密码来管理密码过期的帐户。

如果服务需要在共享其信息之前识别另一个服务,则第二个服务可以使用与第一个服务相同的帐户,也可以在属于第一个服务识别的别名的帐户中运行。 需要跨网络以分布式方式运行的服务应在域范围的帐户中运行。

可以指定以下特殊帐户之一,而不是为服务指定用户帐户: