首先介绍下什么是SID
SID也就是安全标识符(Security Identifiers),是标识用户、组和计算机帐户的唯一的号码。在第一次创建该帐户时,将给网络上的每一个帐户发布一个唯一的 SID. 如果存在两个同样SID的用户,这两个帐户将被鉴别为同一个帐户,原理上如果帐户无限制增加的时候,会产生同样的SID,在通常的情况下SID是唯一的,他由计算机名、当前时间、当前用户态线程的CPU耗费时间的总和三个参数决定以保证它的唯一性。
一个完整的SID包括:· 用户和组的安全描述· 48-bit的ID authority· 修订版本· 可变的验证值Variable sub-authority values如果两台机器的SID一样的话,那么我们加域的时候只有一台机器能加,第二台机器再加的时候就会有报错。出现这个情况一般是因为我们用了ghost装系统或者是在做实验的时候用的是虚拟机clone的。另外,装vmware view server的时候也会验证两台机器的SID是否一样的
既然知道了SID对于计算机的重要性,那么我们如何来查看一台机器的SID呢?
其实很简单,我们只用一条命令就可以了。在命令提示符的界面,输入whoami /user就可以了
我们可以看到,这台机器的sid是S-1-5-***-79435-500,如果我们用虚拟机生成了一个clone的系统,那么SID会和这台机器一样,微软为此提供了工具,系统内已经内置,我们可以通过sysprep.exe 这个小工具来重置SID
首先cd c:windowssystem32sysprep切换到sysprep目录,然后执行sysprep就可以打开系统准备工具
windows server 2012的sysprep版本是3.14
我们勾选通用,其他的默认,点击确定就可以了,然后开始清理系统
清理完成会自动重启,然后系统需要重新封装,重新解包
进入系统后,我们输入whoami /user来查看新获取的SID
这次已经是S-1-5-***-33394-500,已经发生变化,我们再加域就不会出问题了
微软关于重置SID有一款小工具,叫newsid,大家可以到微软的官网下载,不过我现在用server 2012的时候每次用newsid重置sid后,一旦重启就会报错,不知道什么原因,也许是版本太低导致的,等待微软下一个版本的sid再试试。大家有兴趣了也可以试试