前几天利用虚拟机测试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串 | S | 1 | 5 | 21-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的具体机制和在系统管理中更深入的应用,还需要有志的同学
们继续努力钻研,学无止境,其乐无穷。