系统上的每个用户帐户都有一个自动分配给它的Windows SID(安全标识符)。 SID用于计算机系统内使用的所有实体,即,将SID分配给计算机,域帐户,用户和安全组。与SID对应的易于理解的名称可以简化系统管理。例如,您可以更改用户名,但SID不会更改。因此,您不必担心遍历各种访问控制列表来为新名称更新它们,因为基础SID并未更改。

SID是长度可变的数值。它们由结构修订号,标识符授权值和可变数量的子授权值组成。子权限值提供Windows可以基于通用基本SID创建唯一SID的方式。

Sysinternals有一个很好的免费工具,称为PsGetSid,可以从以下站点获得:

http://technet.microsoft.com/en-us/sysinternals/bb897417.aspx

当不使用任何参数运行PsGetSid时,您将获得当前计算机的SID:

C:\>PsGetSid

PsGetSid v1.44 - Translates SIDs to names and vice versa Copyright (C) 1999-2008 Mark Russinovich Sysinternals - www.sysinternals.com

SID for \\DYSERT-PC:

S-1-5-21-205299875-3125232665-432278398

根据显示的数字,您可以确定SID的各个部分。它们之间用短划线隔开。在这种情况下,SID以“ S-1-5”开头,表示结构修订号(1)和标识符授权值(5)。其余的数字(再次用短划线隔开)是子权限值。

Windows附带了一些内置帐户,因此在添加用户帐户之前,已经为这些帐户分配了SID。内置帐户包括Administrator和Guest帐户。针对其中每个运行PsGetSid会显示以下分配:

C:\>PsGetSid Administrator

PsGetSid v1.44 - Translates SIDs to names and vice versa Copyright (C) 1999-2008 Mark Russinovich Sysinternals - www.sysinternals.com

SID for Dysert-PC\Administrator:

S-1-5-21-205299875-3125232665-432278398-500

C:\>PsGetSid Guest

PsGetSid v1.44 - Translates SIDs to names and vice versa Copyright (C) 1999-2008 Mark Russinovich Sysinternals - www.sysinternals.com

SID for Dysert-PC\Guest:

S-1-5-21-205299875-3125232665-432278398-501

如您所见,Windows为每个帐户的SID(500和501)附加了一个数字,以确保其唯一性。这些唯一的后缀称为相对标识符(RID)。随着新帐户的添加,RID从1000开始,并根据需要增加。因此,在“ Dysert”帐户上运行PsGetSid会产生以下结果:

C:\>PsGetSid Dysert

PsGetSid v1.44 - Translates SIDs to names and vice versa
Copyright (C) 1999-2008 Mark Russinovich Sysinternals - www.sysinternals.com

SID for Dysert-PC\Dysert:

S-1-5-21-205299875-3125232665-432278398-1000

要验证此SID是否与我的登录相关联,我可以使用另一个名为LogonSession的Sysinternals工具,可以在这里使用:

http://technet.microsoft.com/en-us/sysinternals/bb896769.aspx

这是该工具产生的输出:

C:\LogonSessions

Logonsesions v1.21 Copyright (C) 2004-2010 Bryce Cogswell and Mark Russinovich Sysinternals - wwww.sysinternals.com

[6] Logon session 00000000:00468835:

User name:    Dysert-PC\Dysert     Auth package: NTLM     Logon type:   Interactive     Session:      1     Sid:          S-1-5-21-205299875-3125232665-432278398-1000     Logon time:   4/11/2014 3:20:29 AM     Logon server: DYSERT-PC     DNS Domain:

UPN:

SID也分配给组。可以通过以下方式获得分配给管理员组的SID:

C:\>PsGetSid \Administrators

PsGetSid v1.44 - Translates SIDs to names and vice versa Copyright (C) 1999-2008 Mark Russinovich Sysinternals - www.sysinternals.com

SID for \Administrators:

S-1-5-32-544

如果由于某种原因您不想使用PsGetSid工具,仍然可以从内置实用程序_wmic_获取SID信息。在命令行中,输入“ _wmic useraccount get name,sid _”(不带引号)。将显示以下输出:

C:\wmic useraccount get name,sid Name           SID Administrator  S-1-5-21-205299875-3125232665-432278398-500 ASPNET         S-1-5-21-205299875-3125232665-432278398-1003 Dysert         S-1-5-21-205299875-3125232665-432278398-1000 Guest          S-1-5-21-205299875-3125232665-432278398-501 SQLDebugger    S-1-5-21-205299875-3125232665-432278398-1007

本技巧(13106)适用于Windows 7、8和10。