SERVICE_SID_INFO结构 (winsvc.h)

表示 SID) (服务安全标识符。

语法

typedef struct _SERVICE_SID_INFO {
  DWORD dwServiceSidType;
} SERVICE_SID_INFO, *LPSERVICE_SID_INFO;

成员

dwServiceSidType

服务 SID 类型。

含义
SERVICE_SID_TYPE_NONE
0x00000000
使用此类型可以减少应用程序兼容性问题。
SERVICE_SID_TYPE_RESTRICTED
0x00000003
此类型包括SERVICE_SID_TYPE_UNRESTRICTED。 服务 SID 也会添加到进程令牌的受限 SID 列表中。 此外,还会向受限 SID 列表添加三个附加 SID:
  • World SID S-1-1-0
  • 服务登录 SID
  • 写入受限 SID S-1-5-33
一个允许GENERIC_ALL访问服务登录 SID 的 ACE 也会添加到服务进程令牌对象中。

如果同一进程中托管了多个服务,并且一个服务SERVICE_SID_TYPE_RESTRICTED,则所有服务都必须SERVICE_SID_TYPE_RESTRICTED。

SERVICE_SID_TYPE_UNRESTRICTED
0x00000001
创建服务进程时,服务 SID 将添加到具有以下属性的服务进程令牌:SE_GROUP_ENABLED_BY_DEFAULT |SE_GROUP_OWNER。

注解

更改在下次启动系统时生效。

SCM 将指定的服务 SID 添加到进程令牌,以及以下附加 SID。

SID 属性
登录 SID SE_GROUP_ENABLED |SE_GROUP_ENABLED_BY_DEFAULT |SE_GROUP_LOGON_ID |SE_GROUP_MANDATORY
本地 SID SE_GROUP_MANDATORY |SE_GROUP_ENABLED |SE_GROUP_ENABLED_BY_DEFAULT
 

这使开发人员能够控制对服务使用的对象的访问权限,而不是依赖使用 LocalSystem 帐户来获取访问权限。

使用 LookupAccountNameLookupAccountSid 函数在服务名称和服务 SID 之间转换。 帐户名称的格式如下:

NT SERVICE\SvcName

请注意,NT SERVICE 是域名。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
标头 winsvc.h (包括 Windows.h)

另请参阅

ChangeServiceConfig2

QueryServiceConfig2