Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Windows XP 產品金鑰變更指南:註冊表法與 WMI 腳本雙管齊下

編輯:XP 系統基礎知識

因授權遷移、序號遺失或測試需求,有時必須在已安裝的 Windows XP 上更換產品金鑰。本文提供兩種官方支援的方法:啟動精靈法(GUI)與 WMI 腳本法(命令列),分別適用於有/無 SP1 的環境。

方法一:啟動精靈法(需修改登錄)

  1. 建立系統還原點(強烈建議)。
  2. Win+R → regedit 開啟登錄編輯器。
  3. 定位至 HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\WPAEvents,右鍵修改 OOBETimer 值,任意更改一個位元組並存檔。
  4. Win+R → 輸入 %systemroot%\system32\oobe\msoobe.exe /a 啟動啟動精靈。
  5. 選「透過電話啟動」→「變更產品金鑰」→ 輸入新金鑰 → 「更新」。
  6. 若回到上一畫面,選「稍後啟動」並重開機,重複步驟 4~5 直到成功。
  7. 最後完成啟動,建議裝上 SP1 修補程式。

方法二:WMI 腳本法(適合批次/自動化)

微軟提供兩支 VBScript,分別針對 無 SP1 (ChangeVLKey2600.vbs) 與 已裝 SP1 (ChangeVLKeySp1.vbs)。核心邏輯皆呼叫 win32_WindowsProductActivation.SetProductKey 方法。

ChangeVLKeySp1.vbs 關鍵片段

ON ERROR RESUME NEXT
if Wscript.arguments.count < 1 then
  Wscript.echo "用法: Cscript ChangeVLKeySp1.vbs ABCDE-FGHIJ-KLMNO-PQRST-UVWXY"
  Wscript.quit
end if
VOL_PROD_KEY = Replace(Wscript.arguments.Item(0), "-", "")
For Each Obj In GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("win32_WindowsProductActivation")
  result = Obj.SetProductKey(VOL_PROD_KEY)
  If Err.Number <> 0 Then WScript.Echo Err.Description, "0x" & Hex(Err.Number)
Next

ChangeVLKey2600.vbs 差異

額外在呼叫 SetProductKey 前,先刪除登錄值:
WshShell.RegDelete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WPAEvents\OOBETimer"

使用範例

  1. 將對應腳本放至 C:\ 根目錄。
  2. Win+R → 輸入:
    C:\ChangeVLKeySp1.vbs AAAAA-BBBBB-CCCCC-DDDDD-EEEEE
    (新金鑰請替換為實際 25 字元序號)
  3. 按確定執行,完成後重開機並重新啟動。

注意: 更換金鑰後必須重新啟動;若裝 SP1 後無法開機,請用 F8 進入「最後一次正確配置」再試。

Copyright © Windows教程網 All Rights Reserved