我想要对安装了 SQL Server 2008 R2 SP1 的 Windows Server 2008 R2 SP1 计算机进行系统准备(作为参考,SQL Server 2008 R2 有一个新的系统准备功能,允许对实例进行系统准备)。
服务器上有一个指向默认 SQL Server 数据库引擎实例的 SQL Server 客户端别名。作为参考,该别名称为 Alias-SQLServer,并且已在 32 位和 64 位 cliconfig 版本中配置(即两个注册表项都存在)
别名指向本地实例,因为该映像将用于创建开发虚拟机,并且正在开发的应用程序的安装脚本将使用 SQL Server 客户端别名来通用化安装脚本。
我似乎找不到有关 sysprep 工具是否会在解封后使用服务器的新名称更新 SQL Server 客户端别名的注册表项的信息。我猜不会;sysprep 如何知道别名指向的服务器名称对于每个映像都会不同?对吗?
也许如果别名指向本地主机而不是服务器名称,这将有效?
答案1
我测试了一下。
我创建了一个新的 VM,并准备了 SQL Server 以进行 sysprepping。我创建了两个别名:
A-SQL1 -> Points to localhost
A-SQL2 -> Points to hostname (WIN-DM5KVH9I9Q8)
。
然后我用 sysprep.exe 封装了该镜像。解封后,别名仍然保持输入的样子:
(我发誓我没有重复使用这些截图)
您会注意到 A-SQL2 仍然指向主机名,也就是说,它没有使用新的服务器名称进行更新。
我完成了 SQL Server 的设置,然后尝试使用两个别名进行连接。
SQL1:
和
SQL2:
A-SQL1 可以工作,因为它指向 localhost;而 A-SQL2 则不行,因为它现在指向旧主机名,并且未作为 sysprep 的一部分进行更新。