了解Windows SID
系统上的每个用户帐户都有一个自动分配给它的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。