Windows Server 2012裸金属服务器如何修改SID值?
操作背景
SID也就是安全标识符(Security Identifiers),是标识用户、组和计算机账户(管理员账户)的唯一号码。在第一次创建该账户时,将给网络上的每一个账户发布一个唯一的SID。SID由计算机名、当前时间、当前用户态线程的CPU耗费时间的总和三个参数决定以保证它的唯一性。
一个完整的SID包括:
- 用户和组的安全描述
- 48-bit的ID authority
- 修订版本
- 可变的验证值(Variable sub-authority values)
例如:S-1-5-21-287469276-4015456986-3235239863-500
S |
1 |
5 |
21-287469276-4015456986-3235239863 |
500 |
表示该字符串是SID |
SID的版本号 |
指颁发机构,这里是NT,值是5 |
表示一系列的子颁发机构 |
标志域内的账户和组。 |
目前,所有Windows Server 2012裸金属服务器拥有相同的SID,对于集群部署场景,需要按照本指导修改SID,以保证唯一性。
操作步骤
- 登录裸金属服务器操作系统。
- 单击左下角的图标,选择“Windows PowerShell”,输入whoami /user命令查看机器的SID值。
图1 查看SID初始值
- 修改Cloudbase-init的配置文件。
- 分别打开“cloudbase-init.conf”和“cloudbase-init-unattend.con”文件。
文件所在目录:C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf
- 为两个配置文件都增加一行“first_logon_behaviour=no”。
[DEFAULT] username=Administrator groups=Administrators first_logon_behaviour=no netbios_host_name_compatibility=false metadata_services=cloudbaseinit.metadata.services.httpser inject_user_password=true ...
- 删除“cloudbase-init-unattend.conf”配置文件中的“cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin”。
图2 配置文件修改示例
- 分别打开“cloudbase-init.conf”和“cloudbase-init-unattend.con”文件。
- 打开命令提示符,输入如下命令打开Sysprep窗口。
进入目录:C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf> 输入命令:C:\Windows\System32\Sysprep\sysprep.exe /unattend:Unattend.xml
- Windows Server 2012的Sysprep版本是3.14,按照下图进行设置,单击“OK”开始清理系统。
图3 System Preparation Tool设置
- 清理完成会自动重启,然后系统需要重新封装,重新解包。重启完成后,Windows系统需要重新设置密码,详细操作请参见“重置裸金属服务器密码”。
- 登录裸金属服务器操作系统,按照2的方法再次查看SID值。
图4 查看SID值(修改后)
可以看到,SID已被修改为新的值。