无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 1721|回复: 23
打印 上一主题 下一主题

我改的转换版本的批处理,请问有什么问题不?

[复制链接]
跳转到指定楼层
1#
发表于 2025-1-31 19:18:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
如题,根据xb21cn的《WIN2025和WIN11.24H2版本互换工具》修改,按能转换Server2022与10的21H2工具修改。
(服务器与客户端企业版专业版等等)

还差开头的echo部分没改,WIN11那些没改成Win10的。
把其他部分改了,Branding与skus从其他系统中找了。(从微软原版19045、独孤S2C 2022、gal…的S2C、22lite(服务器精简版,轻快好用!)中提取)
(其余代码部分贴在二楼)


请大家指点一番,这些指令还有没有不完善的或不当乃至错误的,是否有多余的?
1. 改的这个指令,能不能给任何一个2022的服务器版系统用?给别人的系统用,是否应该加内容?

2. 密钥从MAS_AIO_2.9中找,对EnterpriseS的LTSC,取的 Volume:MAK_EnterpriseS_VB (VB子版本,该文件中还有Ge子版本、RS5、RS1与TH的。请问这个VB的,是不是最适合2022/2021的?)(对IoTEnterpriseS的雷同)
3. ServerRdsh 属服务器版还是客户端版?
4. 我看IoT LTSC 企业版 的 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion 注册表文件夹中,CompositionEditionID与EditionID不一样。像EnterpriseS(LTSC)中,两项值都是EnterpriseS;但在 IoTEnterpriseS 中,前者的是 EnterpriseS ,后者的是 IoTEnterpriseS 。那,是不是批处理应该实现这点?下面这样好不好?
  
  1. :ChangeAuthority
  2. reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "CompositionEditionID" /t REG_SZ /d "%EditionID%" /f > nul
  3. if "%EditionID%"=="IoTEnterpriseS" ( reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "CompositionEditionID" /t REG_SZ /d "EnterpriseS" /f > nul )
  4. reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "EditionID" /t REG_SZ /d "%EditionID%" /f > nul
复制代码



谢谢指点!


2#
发表于 2025-1-31 19:22:33 | 只看该作者
感谢分享
回复

使用道具 举报

3#
 楼主| 发表于 2025-1-31 19:22:49 | 只看该作者
本帖最后由 音乐与电脑 于 2025-1-31 19:27 编辑

@echo off&color 1f&mode con cols=52 lines=26
pushd %~dp0 & cd /d "%~dp0"
:menu
cls
echo.
echo.====================================================
echo.    Windows Server 2022 20348 21H2(22H2) 版本互换
echo.====================================================
echo.
echo.           [1]   转为Win10专业版 [可数字激活]
echo.
echo.          (还没改完)
echo.
echo.----------------------------------------------------
echo.转WIN11后可解除部分软件和驱动限制Server不能安装问题
echo.----------------------------------------------------
echo.如需更新系统打补丁请转回Win2025 Server,系统会更稳定
echo.----------------------------------------------------
echo.
choice /C:1234567891011121314 /N /M "**请输入1-14: [如退出请直接关闭本窗口]"
if errorlevel 1 (set "os=10" & set "key=VK7JG-NPHTM-C97JM-9MPGT-3V66T"&set "EditionID=Professional"&set "winos=Win10专业版")
if errorlevel 2 (set "os=10" & set "key=XGVPP-NMH47-7TTHJ-W3FW7-8HV2C"&set "EditionID=Enterprise"&set "winos=Win10企业版")
if errorlevel 3 (set "os=10" & set "key=DXG7C-N36C4-C4HTG-X4T3X-2YV77"&set "EditionID=ProfessionalWorkstation"&set "winos=Win10专业工作站版")
if errorlevel 4 (set "os=10" & set "key=YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY"&set "EditionID=Education"&set "winos=Win10教育版")
if errorlevel 5 (set "os=10" & set "key=YYVX9-NTFWV-6MDM3-9PT4T-4M68B"&set "EditionID=EnterpriseG"&set "winos=Win10政企版")
if errorlevel 6 (set "os=10" & set "key=KCNVH-YKWX8-GJJB9-H9FDT-6F7W2"&set "EditionID=EnterpriseS"&set "winos=Win10 LTSC企业版")
if errorlevel 7 (set "os=10" & set "key=XQQYW-NFFMW-XJPBH-K8732-CKFFD"&set "EditionID=IoTEnterprise"&set "winos=Win10 IoT企业版")
if errorlevel 8 (set "os=10" & set "key=QPM6N-7J2WJ-P88HH-P3YRH-YY74H"&set "EditionID=IoTEnterpriseS"&set "winos=Win10 IoT LTSC 企业版")
if errorlevel 9 (set "os=10" & set "key=VK7JG-NPHTM-C97JM-9MPGT-3V66T"&set "EditionID=ProfessionalCountrySpecific"&set "winos=Win10限定国家专业版")
if errorlevel 10 (set "os=10" & set "key=8PTT6-RNW4C-6V7J2-C2D3X-MHBPB"&set "EditionID=ProfessionalEducation"&set "winos=Win10专业教育版")
if errorlevel 11 (set "os=10" & set "key=W269N-WFGWX-YVC9B-4J6C9-T83GX"&set "EditionID=ProfessionalSingleLanguage"&set "winos=Win10单语言专业版")
if errorlevel 12 (set "os=10" & set "key=CPWHC-NT2C7-VYW78-DHDB2-PG3GK"&set "EditionID=ServerRdsh"&set "winos=Win10多会话版")
if errorlevel 13 (set "os=Win2022Datacenter" & set "key=WX4NM-KYWYW-QJJR4-XV3QB-6VM33"&set "EditionID=ServerDatacenter"&set "winos=Win服务器 数据中心版")
if errorlevel 14  cls & echo 按任意键将重启电脑[如不想重启请直接关闭本窗口]… & pause> nul&shutdown /r /f /t 1 & exitnul&shutdown /r /f /t 1 & exit
cls
echo.
rem 判断系统是否存在转换文件,存在就跳转到ChangeAuthority
if exist "%windir%\BrandingWin10.21H2_22H2" (
goto ChangeAuthority
)
echo 首次转换,备份原系统skus和Branding…
takeown /f "%windir%\System32\spp\tokens\skus" /r /d y  > nul
icacls "%windir%\System32\spp\tokens\skus" /grant:r administrators:F /T > nul
takeown /f "%windir%\Branding" /r /d y > nul
icacls "%windir%\Branding" /grant:r administrators:F /T > nul
xcopy "%windir%\System32\spp\tokens\skus" "%windir%\System32\spp\tokens\skusB" /q /s /e /c /i /y > nul
ren "%windir%\Branding" "BrandingB"  > nul
echo 首次转换,拷贝转换版本所需的文件到系统…
xcopy "%~dp0skus-21H2.20348" "%windir%\System32\spp\tokens\skus" /q /s /e /c /i /y > nul
xcopy "%~dp0BrandingWin10.21H2_22H2" "%windir%\BrandingWin10.21H2_22H2" /q /s /e /c /i /y > nul
xcopy "%~dp0BrandingWin2022.20348" "%windir%\BrandingWin2022.20348" /q /s /e /c /i /y > nul
:ChangeAuthority
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "CompositionEditionID" /t REG_SZ /d "%EditionID%" /f > nul
if "%EditionID%"=="IoTEnterpriseS" ( reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "CompositionEditionID" /t REG_SZ /d "EnterpriseS" /f > nul )
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "EditionID" /t REG_SZ /d "%EditionID%" /f > nul
echo 请耐心等待安装许可证,需2-5分钟…
cscript /nologo %SystemRoot%\System32\slmgr.vbs /rilc  > nul
if "%os%"=="Win2022Datacenter" goto Win2022Datacenter
echo 正在将系统转换为%winos%,请等待…
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "InstallationType" /t REG_SZ /d "Client" /f > nul
xcopy "%windir%\BrandingWin10.21H2_22H2\*" "%windir%\Branding" /q /s /e /c /i /y > nul
cscript /nologo %SystemRoot%\System32\slmgr.vbs /ipk %key% |find "错误"&&(pause&exit)
echo 已将系统转换为%winos%
echo 请重启电脑,完成%winos%的转换
echo 按任意键返回主菜单…
start slmgr.vbs /xpr&winver
start mshta vbscript:msgbox("请重启电脑后,使系统完整的运行于转换后的%winos%!!",64,"请重启电脑")(window.close)
pause> nul&goto :menu
:Win2022Datacenter
echo 正在将系统转换为%winos%,请等待…
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "InstallationType" /t REG_SZ /d "Server" /f > nul
xcopy "%windir%\BrandingWin2022.20348\*" "%windir%\Branding" /q /s /e /c /i /y > nul
cscript /nologo %SystemRoot%\System32\slmgr.vbs /ipk %key% |find "错误"&&(pause&exit)
echo 已将系统转换为%winos%
echo 请重启电脑,完成%winos%的转换
echo 按任意键返回主菜单…
start slmgr.vbs /xpr&winver
start mshta vbscript:msgbox("请重启电脑,使系统完整的运行于转换后的%winos%!!",64,"请重启电脑")(window.close)
pause> nul&goto :menu

点评

喂给deepseek优化一下,未验证  详情 回复 发表于 2025-2-5 14:10
专业  详情 回复 发表于 2025-2-1 04:02
回复

使用道具 举报

4#
发表于 2025-1-31 19:25:33 | 只看该作者
谢谢楼主。
回复

使用道具 举报

5#
发表于 2025-1-31 19:50:50 | 只看该作者
太专业了。学习中
回复

使用道具 举报

6#
发表于 2025-1-31 20:42:15 | 只看该作者
试一试
回复

使用道具 举报

7#
发表于 2025-1-31 22:17:09 | 只看该作者

谢谢楼主。
回复

使用道具 举报

8#
发表于 2025-1-31 23:02:20 | 只看该作者
谢谢分享
回复

使用道具 举报

9#
发表于 2025-1-31 23:02:31 | 只看该作者
学习了
回复

使用道具 举报

10#
发表于 2025-2-1 04:02:11 | 只看该作者
音乐与电脑 发表于 2025-1-31 19:22
@echo off&color 1f&mode con cols=52 lines=26
pushd %~dp0 & cd /d "%~dp0"
:menu

专业

点评

不算  详情 回复 发表于 2025-2-1 19:22
回复

使用道具 举报

11#
发表于 2025-2-1 09:56:11 | 只看该作者
谢谢分享!!!
回复

使用道具 举报

12#
发表于 2025-2-1 11:33:13 | 只看该作者
很强,谢谢分享
回复

使用道具 举报

13#
发表于 2025-2-1 11:55:09 | 只看该作者
没有换版本号的需求
回复

使用道具 举报

14#
 楼主| 发表于 2025-2-1 19:22:30 | 只看该作者
回复

使用道具 举报

15#
 楼主| 发表于 2025-2-1 23:03:17 | 只看该作者
自顶一下
回复

使用道具 举报

16#
发表于 2025-2-2 11:28:10 来自手机 | 只看该作者
虽然不明白,但帮顶一下。
回复

使用道具 举报

17#
发表于 2025-2-2 17:01:06 | 只看该作者
帮顶一下。
回复

使用道具 举报

18#
 楼主| 发表于 2025-2-2 17:38:03 | 只看该作者
自顶一下
回复

使用道具 举报

19#
 楼主| 发表于 2025-2-2 20:14:59 来自手机 | 只看该作者
自顶
回复

使用道具 举报

20#
 楼主| 发表于 2025-2-3 12:06:42 来自手机 | 只看该作者
自顶
回复

使用道具 举报

21#
 楼主| 发表于 2025-2-3 13:49:26 来自手机 | 只看该作者
自顶一下
回复

使用道具 举报

22#
发表于 2025-2-5 08:45:02 | 只看该作者
谢谢楼主。
回复

使用道具 举报

23#
发表于 2025-2-5 14:10:12 | 只看该作者
本帖最后由 holley2008 于 2025-2-5 14:13 编辑
音乐与电脑 发表于 2025-1-31 19:22
@echo off&color 1f&mode con cols=52 lines=26
pushd %~dp0 & cd /d "%~dp0"
:menu

喂给deepseek优化一下,未验证
  1. @echo off
  2. :: 强制要求管理员权限
  3. fltmc >nul 2>&1 || (
  4.     echo 需要管理员权限,请右键使用"以管理员身份运行"
  5.     timeout /t 3 >nul
  6.     exit /b 1
  7. )

  8. :: 初始化环境
  9. setlocal enabledelayedexpansion
  10. color 1f
  11. mode con cols=60 lines=30
  12. title Windows Server 版本转换工具 v2.1
  13. pushd "%~dp0" >nul

  14. :: 配置选项参数
  15. set "OPTIONS=专业版 企业版 专业工作站版 教育版 政企版 LTSC企业版 IoT企业版 IoT_LTSC 限定国家版 专业教育版 单语言版 多会话版 数据中心版 重启"
  16. set "KEYS=VK7JG-NPHTM-C97JM-9MPGT-3V66T XGVPP-NMH47-7TTHJ-W3FW7-8HV2C DXG7C-N36C4-C4HTG-X4T3X-2YV77 YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY YYVX9-NTFWV-6MDM3-9PT4T-4M68B KCNVH-YKWX8-GJJB9-H9FDT-6F7W2 XQQYW-NFFMW-XJPBH-K8732-CKFFD QPM6N-7J2WJ-P88HH-P3YRH-YY74H VK7JG-NPHTM-C97JM-9MPGT-3V66T 8PTT6-RNW4C-6V7J2-C2D3X-MHBPB W269N-WFGWX-YVC9B-4J6C9-T83GX CPWHC-NT2C7-VYW78-DHDB2-PG3GK WX4NM-KYWYW-QJJR4-XV3QB-6VM33"
  17. set "EDITION_IDS=Professional Enterprise ProfessionalWorkstation Education EnterpriseG EnterpriseS IoTEnterprise IoTEnterpriseS ProfessionalCountrySpecific ProfessionalEducation ProfessionalSingleLanguage ServerRdsh ServerDatacenter"

  18. :MAIN_MENU
  19. cls
  20. echo.
  21. echo ====================================================
  22. echo    Windows Server 2022 版本转换工具(20348 21H2/22H2)
  23. echo ====================================================
  24. echo.
  25. for /l %%i in (1,1,14) do (
  26.     set "desc=!OPTIONS: =" "!"
  27.     call set "desc=%%desc:~%%i,1%%"
  28.     echo   [%%i]  !desc!
  29. )
  30. echo.
  31. echo ----------------------------------------------------
  32. echo 注意事项:
  33. echo 1. 转换前请确保系统已备份
  34. echo 2. 部分版本需要重启生效
  35. echo 3. 数据中心版需使用服务器授权
  36. echo ----------------------------------------------------

  37. :INPUT_CHOICE
  38. set /p "CHOICE=请输入选项编号 (1-14, 直接关闭窗口退出): "
  39. echo %CHOICE%|findstr /r "^[0-9][0-9]*[        DISCUZ_CODE_0        ]quot; >nul || goto INVALID_INPUT
  40. if %CHOICE% lss 1 goto INVALID_INPUT
  41. if %CHOICE% gtr 14 goto INVALID_INPUT
  42. goto PROCESS_CHOICE

  43. :INVALID_INPUT
  44. echo 错误:无效的输入,请重新输入
  45. timeout /t 2 >nul
  46. goto MAIN_MENU

  47. :PROCESS_CHOICE
  48. :: 动态设置参数
  49. for /f "tokens=%CHOICE%" %%k in ("%KEYS%") do set "KEY=%%k"
  50. for /f "tokens=%CHOICE%" %%e in ("%EDITION_IDS%") do set "EDITION_ID=%%e"
  51. for /f "tokens=%CHOICE%" %%o in ("%OPTIONS%") do set "WIN_OS=%%o"

  52. :: 特殊处理选项14(重启)
  53. if %CHOICE% equ 14 (
  54.     echo 系统将在5秒后重启...
  55.     shutdown /r /f /t 5
  56.     exit
  57. )

  58. :: 执行版本转换
  59. call :BACKUP_SYSTEM_FILES
  60. call :MODIFY_REGISTRY
  61. call :INSTALL_LICENSE

  62. :: 完成提示
  63. echo.
  64. echo ===================== 转换完成 =====================
  65. echo 已成功转换为:%WIN_OS%
  66. echo 许可证密钥:%KEY%
  67. echo 请立即重启系统使更改生效!
  68. echo ====================================================
  69. choice /t 30 /d y /n /m "30秒后自动返回主菜单,按任意键立即重启..."
  70. if errorlevel 1 shutdown /r /f /t 0
  71. goto MAIN_MENU

  72. :: 系统文件备份模块
  73. :BACKUP_SYSTEM_FILES
  74. if exist "%windir%\BrandingWin10.21H2_22H2" goto :EOF

  75. echo [1/3] 正在备份系统文件...
  76. takeown /f "%windir%\System32\spp\tokens\skus" /r /d y >nul 2>&1
  77. icacls "%windir%\System32\spp\tokens\skus" /grant:r administrators:F /T >nul 2>&1
  78. xcopy "%windir%\System32\spp\tokens\skus" "%windir%\System32\spp\tokens\skus.bak" /q /s /e /i >nul

  79. takeown /f "%windir%\Branding" /r /d y >nul 2>&1
  80. icacls "%windir%\Branding" /grant:r administrators:F /T >nul 2>&1
  81. ren "%windir%\Branding" "Branding.bak" >nul 2>&1

  82. echo [2/3] 正在部署新版本文件...
  83. xcopy "%~dp0skus-21H2.20348" "%windir%\System32\spp\tokens\skus" /q /s /e /i >nul
  84. xcopy "%~dp0BrandingWin10.21H2_22H2" "%windir%\BrandingWin10.21H2_22H2" /q /s /e /i >nul
  85. xcopy "%~dp0BrandingWin2022.20348" "%windir%\BrandingWin2022.20348" /q /s /e /i >nul
  86. exit /b

  87. :: 注册表修改模块
  88. :MODIFY_REGISTRY
  89. echo [3/3] 正在修改系统配置...
  90. reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "CompositionEditionID" /t REG_SZ /d "%EDITION_ID%" /f >nul
  91. reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "EditionID" /t REG_SZ /d "%EDITION_ID%" /f >nul
  92. reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "InstallationType" /t REG_SZ /d "Client" /f >nul
  93. exit /b

  94. :: 许可证安装模块
  95. :INSTALL_LICENSE
  96. cscript //nologo %SystemRoot%\System32\slmgr.vbs /upk >nul
  97. cscript //nologo %SystemRoot%\System32\slmgr.vbs /ipk %KEY% >nul || (
  98.     echo 错误:许可证安装失败!
  99.     pause
  100.     exit /b 1
  101. )
  102. cscript //nologo %SystemRoot%\System32\slmgr.vbs /ato >nul
  103. exit /b
复制代码

回复

使用道具 举报

24#
发表于 2025-3-7 17:57:02 | 只看该作者
谢谢各位。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-4-6 19:54

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表