Я хочу выполнить sysprep на компьютере с Windows Server 2008 R2 SP1, на котором установлен SQL Server 2008 R2 SP1 (для справки, в SQL Server 2008 R2 есть новая функция sysprep, которая позволяет запускать sysprep для экземпляра).
На сервере есть псевдоним клиента SQL Server, который указывает на экземпляр ядра СУБД SQL Server по умолчанию. Для справки, псевдоним называется Alias-SQLServer и был настроен как в 32-битной, так и в 64-битной версиях cliconfig (то есть существуют оба ключа реестра).
Псевдоним указывает на локальный экземпляр, поскольку образ будет использоваться для создания виртуальных машин разработки, а сценарий установки разрабатываемого приложения будет использовать псевдоним клиента SQL Server для обобщения сценариев установки.
Я не могу найти информацию о том, обновит ли инструмент sysprep ключи реестра псевдонима клиента SQL Server с новым именем сервера после его распечатки. Я предполагаю, что это не так; как sysprep узнать, что имя сервера, на которое указывает псевдоним, будет различным для каждого изображения? Правильно?
Возможно, если псевдоним указывает на localhost вместо имени сервера, это сработает?
Я это проверил.
Я создал новую виртуальную машину и подготовил SQL Server к системной подготовке. Я создал два псевдонима:
A-SQL1 -> Points to localhost
A-SQL2 -> Points to hostname (WIN-DM5KVH9I9Q8)
.
Затем я запечатал образ с помощью sysprep.exe. После распечатывания псевдонимы остались такими, как введены:
(Клянусь, я не использовал повторно скриншоты)
Вы заметите, что A-SQL2 все еще указывает на имя хоста, то есть оно не было обновлено с новым именем сервера.
Я завершил настройку SQL Server, а затем попытался подключиться, используя оба псевдонима.
A-SQL1:
и
A-SQL2:
A-SQL1 работает, поскольку указывает на localhost, а A-SQL2 - нет, поскольку теперь он указывает на старое имя хоста и не был обновлен как часть sysprep.