修改Windows实例的SID用于搭建域环境
免责声明:本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。
问题描述
使用同一个Windows Server镜像创建几台ECS实例后,实例之间无法互相访问AD域,或者无法同时加入AD域。
问题原因
使用同一个Windows Server镜像的几台实例中,其计算机安全标识符(SID,Security Identifier)相同,因此无法相互访问AD域。此时您需要修改实例SID,再搭建域环境。
解决方案
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
如何批量创建不同SID的实例
使用最新的公共镜像创建实例即可,因为最新的公共镜像已经修复此问题。
如何修改一台Windows实例的SID
Windows系统内置的sysprep
命令可以将已安装的Windows镜像中删除特定的系统信息,其中包括SID。本文使用PowerShell
的AutoSysprep.ps1
脚本文件,通过系统内置的sysprep
命令修改Windows实例的SID。需要注意的是,sysprep
命令会将User Profile恢复为默认值,执行sysprep
命令后会删除桌面上创建的文件。如果您希望修复故障后自动删除脚本,可以将文件放置在桌面上执行。
- 给实例的系统盘创建快照,如何创建快照,请参见创建快照,避免意外导致系统崩溃。
- 登录实例,如何登录实例,请参见在本地客户端上连接Windows实例。
- 登录系统终端,执行
powershell
命令进入PowerShell交互模式。
说明:必须以管理员用户执行
powershell
命令。 - 执行
cd\
命令,切换至C盘根目录。 - 执行以下命令,查看系统的SID。
whoami /user
系统显示类似如下。 - 通过以下链接,下载AutoSysprep脚本工具,上传至实例的C盘。
AutoSysprep脚本工具 - 进入
AutoSysprep.ps1
脚本工具所在目录,执行以下命令,查看脚本工具说明。.\AutoSysprep.ps1 -help
系统显示类似如下,具体的参数说明请参见更多信息。 - 执行以下命令,运行脚本。
.\AutoSysprep.ps1 -SkipRearm -Password "[$Password]" -PostAction "reboot"
说明:[$Password]为需要设置的密码。
- 等待一段时间,再次登录实例。
说明:如果您使用的是经典网络类型实例,需要使用管理终端连接Windows实例进行配置,在完成配置后,网络才可以连通。
- 执行以下命令,确认系统的SID发生改变。然后可以使用ECS实例搭建AD域环境。
whoami /user
更多信息
AutoSysprep.ps1
脚本工具参数介绍以下所示:
- -SkipRearm参数:保留Windows操作系统到当前授权许可状态。没有添加该参数时,AutoSysprep会恢复Windows实例到原始授权许可状态。
- -Password参数:给实例重置密码。密码规则如下。
长度为8至30个字符,不能以斜线(/)为密码首字符。必须同时包含大写英文字母、小写英文字母、数字和特殊符号中的三类字符。部分特殊符号以下所示。-Password参数默认值是由AutoSysprep随机生成。说明:如果您忘记设置密码,修改系统SID后可以在ECS管理控制台重置密码。
( ) ` ~ ! @ # $ % ^ & - _ + = | { } [ ] : ; ’ < > , . ? /
- -Hostname参数:为实例重置主机名。主机名限制如下:
主机名字符长度为2到15,不支持点号(.),不能全是数字。允许大小写英文字母、数字和短横线(-)。点号(.)和短横线(-)不能作为首尾字符,更不能连续使用。-Hostname
参数默认值是由AutoSysprep随机生成。 - -PostAction参数:运行脚本后的后续操作,选项介绍如下。
- shutdown:默认选项,修改实例SID后停止实例。
- reboot:修改实例SID后重启实例。
- quit:修改实例SID后停留在实例内部。
- -help参数:查看脚本工具的介绍,自定义的使用AutoSysprep.ps1的参数。
Windows Server 2008系统查看脚本说明时报错
问题现象
执行以下命令,查看脚本说明。
.\AutoSysprep.ps1 -help
系统显示类似如下。
解决方法
执行以下命令,增加权限。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Windows Server 2008系统运行脚本时提示未进行数字签名
问题现象
执行以下命令,运行脚本。
.\AutoSysprep.ps1 -skiprearm -postaction "reboot"
系统显示类似如下。
解决方法
登录系统终端,执行以下命令,运行脚本。
powershell -executionpolicy bypass -file c:\AutoSysprep.ps1 -skiprearm -postaction "reboot"
说明:如果没有特定要求,AutoSysprep会随机生成密码和主机名。
适用于
- 云服务器ECS