服务用户帐户

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

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

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

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

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