Как изменить лицензию на существующем сервере Win2k3 с розничной продажи на корпоративную?
У меня есть критически важный для бизнеса сервер приложений, который был установлен некоторое время назад. Установка была дорогостоящим процессом (большая сложная система на основе CICS на Win2k3), и я бы не хотел этого повторять.
Однако прошло уже пять лет, и я хотел бы виртуализировать сервер (используя VMWare), чтобы мы могли защитить его и обновить оборудование.
Мы успешно протестировали виртуализацию системы, но обнаружили, что исходная ОС Win2k3 была установлена не с нашей обычной корпоративной лицензией, а с розничной копией. Я предполагаю, что это означает, что каждый раз, когда мы перемещаем базовое оборудование, он будет вызывать активацию и в конечном итоге заканчиваться. Это может стать проблемой, если нам придется прибегнуть к резервному копированию из-за серьезного аппаратного сбоя.
То, что я хотел бы сделать, это изменить базового лицензиата для ОС без необходимости переустанавливать все. Возможно ли это для Win2k3? Как вы идете об этом?
4 ответа
Это не дает конкретного ответа на ваши вопросы, но может помочь, если вы не найдете ответа:
Я думаю, что есть разница между активацией и повторной активацией. У нас были физические машины, на которых лицензия на активацию Win23k была полностью израсходована, а затем виртуализировали эти машины, требующие повторной активации. К моему удивлению мне не нужно было звонить, мастер повторной активации работал нормально. На самом деле, мы переместили их на разные хосты, и повторная активация повторяется, и каждый раз, когда это работает.
Я думаю, что MS относится к повторной активации иначе, чем активация в отношении использования лицензий.
Пока данные виртуального оборудования вашей виртуальной машины остаются неизменными (например, номер процессора, MAC-адрес виртуального сетевого адаптера), вам не нужно будет повторно активировать окна при переключении базового физического оборудования.
Я обновил OEM-версию XP до корпоративной лицензии, выполнив обычное обновление. Пока установочный компакт-диск имеет более позднюю версию, он выполнит обновление и запросит клавишу громкости. Обновление установочного компакт-диска может быть сделано с помощью Slipstreaming. nLite облегчает этот процесс. Это должно работать и для Windows 2003 Server, вместо того чтобы выполнять более инвазивное обновление на месте.
У меня это не работает, возможно, вам придется выполнить обновление на месте. Это сработало для меня, но я никогда не пробовал нормальное обновление.
http://support.microsoft.com/kb/816579
Процесс сбрасывал все мои лицензии Microsoft, поэтому мне пришлось заново вводить их в диспетчер лицензий.
Может быть инструмент Microsoft, который сделает это, но он не доступен для общественности, если он существует. Я бы связался с вашим дилером по корпоративным лицензиям, чтобы узнать, существует ли такая утилита.
От Microsoft
" Изменить ключ корпоративной лицензии в XP"
Несмотря на то, что он говорит "XP", тот же метод будет работать для 2k3. Я предлагаю вам использовать скрипт в ссылке. (Я вставляю это здесь, чтобы было легче).
Просто сохраните его как ChangeVLKey.vbs и запустите так:
c:\changevlkeysp1.vbs ab123-123ab-ab123-123ab-ab123
....
'
' WMI Script - ChangeVLKey.vbs
'
' This script changes the product key on the computer
'
'***************************************************************************
ON ERROR RESUME NEXT
if Wscript.arguments.count<1 then
Wscript.echo "Script can't run without VolumeProductKey argument"
Wscript.echo "Correct usage: Cscript ChangeVLKey.vbs ABCDE-FGHIJ-KLMNO-PRSTU-WYQZX"
Wscript.quit
end if
Dim VOL_PROD_KEY
VOL_PROD_KEY = Wscript.arguments.Item(0)
VOL_PROD_KEY = Replace(VOL_PROD_KEY,"-","") 'remove hyphens if any
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.RegDelete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WPAEvents\OOBETimer" 'delete OOBETimer registry value
for each Obj in GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf ("win32_WindowsProductActivation")
result = Obj.SetProductKey (VOL_PROD_KEY)
if err <> 0 then
WScript.Echo Err.Description, "0x" & Hex(Err.Number)
Err.Clear
end if
Next