Сегодня провёл нечеловеческий эксперимент по обновлению старого сервера Windows 2000 Advanced Server En до Windows 2003 Std Rus. Случилось так, что сломался у нас пару недель назад старенький сервер, который когда-то был частью кластера MS SQL 2000, использовавшийся до последнего времени как файловое хранилище. Сервер старинный, на каком-то чудном железе, где SCSI RAID контроллер, причём, далеко не из часто встречающихся. Итак, поехали!1. Займёмся переустановкой Windows 2000 Advanced Server на Windows 2003 Std. Вообще-то, штатными средствами это не делается. Поэтому копируем содержимое установочного диска на жёсткий диск, заходим в …\i386\dosnet.inf и в секции [Miscellaneous] исправляем
ProductType = 2
,где была 1, а вообще возможные варианты:
0 — Professional
1 — Standart
2 — Enterprise Edition.
Это я не сам придумал, плагиатом тоже заниматься не буду, хинт позаимствован здесь.
Разумеется, я должен написать о том, что так делать нельзя, что вы нарушаете лицензионное соглашение Microsoft, что перед всеми действиями вы должны сделать полный бэкап сервера чем-либо и т.д. Сделали? Если нет — ой, напрасно вы всё это затеяли!
Что мы получим? Мы переставим систему, но она встанет как Enterprise Edition. Серийник будет такой же, как у Standard. То есть ничего общего с лицензией этот монстр иметь не будет. Но мы постараемся это исправить.
2. Не торопимся переустанавливать систему, потому что, учитывая разность языков, у нас ничего не получится. А чтобы получилось, запускать программу установки мы будем командой
…\i386\winnt32.exe /#U:ANYLOCALE
И, опять же, я не буду претендовать на авторство на данный хинт. Он позаимствован здесь.
Если вам надо просто переставить систему без изменения языка, вам это не нужно. А мне нужно было 🙂 Программа установки запустилась на английском языке и предложила обновиться, скопировала файлы и ушла перегружаться, а после перезагрузки я увидел уже русский язык.
Установка не отличалась какими-либо особенностями, так что описывать её я не буду. В результате у меня получилась система Windows 2003 Enterprise Edition с русскоязычным интерфейсом.
3. Теперь надо озаботиться тем, чтобы избавиться от EE и получить желаемый STD.
Запускаем редактор реестра и открываем поочерёдно параметр HKLM\SYSTEM\XXX\Control\ProductOptions\ProductSuite, где
XXX — ControlSetNNN со всеми существующими цифрами NNN, а так же CurrentControlSet
Исправляем значение параметра Enterprise Terminal Server на Terminal Server. Перезагружаем сервер, в процессе загрузки наживаем F8 и делаем загрузку последней удачной конфигурации.
Следующий шаг зависит от того, меняли ли мы язык или нет. Если нет, загружаемся с установочного диска Windows 2003 Std, до которого мы обновляли систему, подсовываем ему драйвера, чтобы увидеть дисковые накопители, выбираем «установку» системы и, когда программа установки найдёт нашу систему, выбираем её восстановление. Воссстановление проходит — цель достигнута, у нас Windows 2003 Std.
Если мы меняли язык системы, танцы с бубном продолжаются, и мы будем переходить к следующему шагу.
А в этом шаге остаётся упомянуть, что данный шаг несколько переработан мной на основе данного хинта.
3a. Я очень долго рылся в разных источниках в поисках решения проблемы «где же в винде прописана её системная локаль?», но так и не нашёл вразумительного ответа. Однако, путём длительного осьминоженья по клавиатуре, я выяснил, что искомое значение находится где-то в HKLM\SYSTEM\XXX\Control\Nls\ (исправляем для всех XXX, аналогично п.3). Нас интересует параметр …\Nls\Locale (Default), его значения ставим равными 419 и параметр …\Nls\Language InstallLanguage и Default, их так же ставим равными 419. Поменяв эти значения, можно запускать переустановку винды в режиме восстановления. Без изменения этого параметра система определяется как иноязычная и восстанавливаться не будет.
- Пишите, если вы попробовали сделать обновление так, как написано у меня.
- Так же обязательно пишите, если вам удалось сделать «обновление» системы с 32 на 64-битную версию без удаления всего и установки «с чистого листа». Как самый крайний вариант — пробэкапить список сервисов и настроек на старом 32-битном сервере и поднять списком на новом 64-битном.