![SQL Server 客户端别名是否可以在 sysprep 中保留下来?](https://linux22.com/image/580168/SQL%20Server%20%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%88%AB%E5%90%8D%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%9C%A8%20sysprep%20%E4%B8%AD%E4%BF%9D%E7%95%99%E4%B8%8B%E6%9D%A5%EF%BC%9F.png)
我想要对安装了 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 的一部分进行更新。