什么是Windows 安全主体SID

来源:互联网 发布:java开发工具新手 编辑:程序博客网 时间:2024/05/16 18:34

      前几天利用虚拟机测试Windows Server 2008 R2的 RemoteApp 功能,在测试负载均衡时,需要

多台安装了Windows 2008 R2的虚拟机,测试中采用克隆方法创建了所需虚机,但是这些虚机启动没有

问题,但是不能加入活动目录域中进行管理,通过Google,获知是由于SID的问题,由于克隆的虚机与

模板虚机重复,活动目录的管理机制无法识别,所以不能加入域中。什么是SID,下面简要说明一下,资

源来自网上,自己总结了一下,感谢网上不断无私奉献的同志们。如果修改重复的SID,将在后续的文章

中进行说明。

      SID是security identifier 的缩写,翻译过来就是安全标识符,安全标识符SID是一个值,这个值唯一

地标识一个组织内的用户、组、计算机或服务,因此在Windows管理机制中,计算机和用户均被分配其各

自的SID,用以唯一标识计算机和用户等安全主体(Security Principals),其具体表现为一个字符串如

S-1-5-21-2940582544-2862660836-2821281278。安全主体是一个能够对它分配权限的对象,例如,
用户和计算机。对于活动目录来说,每一个域的安全主体都需要惟一的安全标识符SID,不能重复,
进而可

以说,活动目录对用户、组和计算机的管理,不仅仅是通过其名称来进行的。

      那么SID字符串的各个部分意义是什么呢,具体如下:

SID串S1521-2940582544-2862660836-2821281278 意义说明该字符串是安全标识符版本标识标识符颁发机构域或者本地计算机标识符 

其中颁发机构取值范围如下:

0 – Null Authority

1 – World Authority

2 – Local Authority

3 – Creator Authority

4 – Non-unique Authority

5 – NT Authority

9 – Resource Manager Authority

那么如何查看用户或机器的SID呢?说明如下:

1、查看机器SID

微软提供了一个 PSTOOL 工具,其中的PsGetsid.exe可以获取计算机的SID,如下图:


psgetsid 的使用格式如下:

psgetsid [\\computer[,computer[,...] | @file [-u username [-p password]]] [account]

psgetsid支持远程使用,其中computer指远程计算机名称,如果不提供名称,则获取执行此命令的机器SID。

在执行时可以提供多个机器名称,实现对不同机器SID并发检索。如


-u -p 参数用来指定访问远程计算机的用户名和密码,如果省略-p,则在执行过程中系统将提示输入密码。

 [account]参数用来指定账户名称,查看用户的SID。

2、查看用户SID

查看用户SID有两种方法:

1)采用Whoami 命令,命令格式为 Whoami /user,如下图


此命令返回了当前登录用户的信息及SID,无论是本地用户还是域用户。

2)采用psgetsid名,命令格式为psgetsid account

此命令可以任意查看当前用户还是远程域用户的SID,如下图:



上述内容对SID做了一个概要的总结,至于SID的具体机制和在系统管理中更深入的应用,还需要有志的同学

们继续努力钻研,学无止境,其乐无穷。





原创粉丝点击