winsvc.) h (结构SERVICE_SID_INFO结构

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

语法

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

成员

dwServiceSidType

服务 SID 类型。

Value 含义
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