首页/系统/Windows 运维速查/SID 与已知安全标识速记

SID 与已知安全标识速记

账户/组的唯一 SID:重命名不变;S-1-5-18 SYSTEM、S-1-5-19 本地服务、S-1-5-20 网络服务、S-1-5-32-544 管理员组。

Windows 运维速查系统更新于 2026-10-13

SID 是什么

SID(安全标识符)是账户与组的唯一身份编号,权限系统里存的是 SID 而不是名字:把 ACL 里的名字改掉,权限不会变;把账户删掉,ACL 里的 SID 就变成无法解析的残影。正因为如此,改名账户不会影响历史授权,而「删掉再建一个同名账户」则会丢掉原有权限——这也是复用账号名的做法被列为安全禁忌的原因。

基本信息

适用平台Windows 全版本(本地与域环境通用)
结构S-1-5-21-域或机器标识-相对标识(RID)
查看当前whoami /user 显示当前账户 SID
查看账户Get-LocalUser | Select-Object Name, SID;域账户用 Get-ADUser -Identity 名称 | Select-Object SID
查看 ACLicacls 路径 或 Get-Acl 路径,未解析的 SID 常意味账户已删除
权限要求查看无需提权;修改 SID 相关配置需要管理员

典型使用场景

  • 权限排障:ACL 里出现陌生 SID,判断是已删除账户还是跨域对象
  • 账号改名:确认改名不影响既有授权,避免重复配置权限
  • 域迁移:了解 SID 历史机制对原有权限保留的作用
  • 克隆排查:虚拟机克隆未做 sysprep 导致机器标识重复引发域内异常
  • 审计取证:核对特定 SID 出现在哪些目录或服务的权限中

常用示例

常用示例
whoami /user                                   # 当前账户的 SID
whoami /groups                                 # 令牌中各组的 SID
wmic useraccount get name,sid                  # 本地账户 SID 一览(WMIC 已弃用)
REM PowerShell 等价
REM Get-LocalUser | Select-Object Name, SID, Enabled
REM Get-LocalGroup | Select-Object Name, SID
icacls D:\Data | findstr /i "S-1-5-21"          # 在 ACL 中查找已解析或未解析的 SID
REM 用 SID 作为标识排查服务与计划任务
REM Get-ScheduledTask | ForEach-Object { $_.Principal.UserId } | Sort-Object -Unique

常见 SID 速查

SID身份说明
S-1-5-18SYSTEM(本机)系统账户,权限最高
S-1-5-19LOCAL SERVICE本地服务账户,权限受限
S-1-5-20NETWORK SERVICE网络服务账户,网络身份为机器账户
S-1-5-32-544Administrators内置管理员组
S-1-5-21-…-500内置 Administrator 账户RID 500 为内置管理员
S-1-5-21-…-501内置 Guest 账户RID 501 为来宾账户
S-1-5-21-…本地或域账户与组由机器或域标识加 RID 组成
权限条目里保存的就是 SID,账户删除后 ACL 里显示为 S-1-5-21-… 这样的残影,命名不存在的账户时无法解析。清理这类残影是权限治理的常规动作,但清理前要确认该目录没有依赖旧授权。
RID(最后一段数字)在域内同类对象间连续分配,因此 500、501、502 这类固定 RID 有特定含义(内置管理员、来宾、krbtgt),审计时看到这些编号可以直接定位到内置高权限对象。

检索与核对

检索与核对
$sid = (whoami /user | Select-String 'S-1-5').ToString().Split()[-1]     # 取当前 SID
(New-Object System.Security.Principal.SecurityIdentifier($sid)).Translate([System.Security.Principal.NTAccount])   # SID 转名称
Get-Acl D:\Data | Select-Object -ExpandProperty Access | Select-Object IdentityReference, FileSystemRights, AccessControlType
Get-ChildItem D:\Data -Recurse -ErrorAction SilentlyContinue | ForEach-Object { Get-Acl $_.FullName } |
  Select-Object -ExpandProperty Access | Where-Object { $_.IdentityReference -like 'S-1-5-*' } | Sort-Object IdentityReference -Unique   # 找出未解析 SID
克隆虚拟机或整盘复制后必须走 sysprep 让机器标识重新生成:机器 SID 重复会给域环境带来难以定位的认证与权限问题,补齐成本远高于初始规范装机。

易错点

  • 删除账户后重建同名账户:SID 不同,原有权限全部失效,出现「名字对了但权限没了」
  • 把 ACL 里的 SID 残影当成入侵痕迹:多数情况只是原账户已删除,需结合审计日志判断
  • 克隆虚拟机不执行 sysprep:机器 SID 重复导致域内认证与授权行为异常
  • 按账户显示名做权限比对:显示名可重复且可修改,权限核对应以 SID 为准
  • 在重启或重建前不导出账户与 SID 对照:事后无法追溯历史授权对应的是谁

数据来源与参考

  • Microsoft Learn:安全标识符(SID)
  • Microsoft Learn:Well-known SIDs

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌