最近研究系统封装部署,关于SID一直不明白,搜索了一些说的语焉不详,所以在微软官网搜索SID相关内容,在此做一些记录。
Windows 使用 SID 不仅表示计算机,还表示所有安全主体。 安全主体包括计算机、用户、工作组,域计算机帐户、用户和安全组。
如果计算机已加入域,则域SID 将发挥作用。计算机仍然具有自己的计算机 SID即计算机存在两个SID。但它也是域的成员,因此它有一个 SID 表示其在该域中的计算机帐户。
计算机SID在系统安装时生成(生成算法?),因此在克隆系统时会存在重复SID情况;但是域SID不会重复,因为域SID由域控制器管理、颁发,域控制器保证了SID不会存在重复的情况。
您可以使用 Sysinternals PsGetSid 工具查看计算机的 SID,方法是在没有命令行参数的情况下运行:PsGetSid
也可以查询用户SID,在命令行内输入:PsGetSid Administrator
通过查询计算机及用户SID发现,两个SID非常相似,这是因为Windows在生成计算机SID后不再为用户生成唯一的SID,而是在计算机SID基础上添加RID( relative identifier),内置管理员RID为500,本地用户从1000开始。
其他方式1-SID注册表查询:
用户SID:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList依次选择每个SID,查看ProfileImagePath的值,末尾为用户名
计算机SID:HKLM:\security\sam\domains\account(一般为隐藏的)
其他方式2-命令行查询:
运行CMD,输入:whoami /user
S-1-5-21-2164708889-1276752680-3758379762-1004
S:表示该字符串为SID
1:Revision,表示SID版本,
5:IdentifierAuthority,表示SID颁发机构,5-NT Authority
21:域ID
2164708889-1276752680-3758379762:长度为3的32位随机数数组,唯一标识域
1004:RID,表示域中唯一对象的ID
参考文章: The Machine SID Duplication Myth (and Why Sysprep Matters)
参考文章: Machine SIDs and Domain SIDs
参考文章: Docs Windows Security
Security identifiers
参考文章: Well-Known SID Structures