查看: 1256|回复: 28
收起左侧

[卡巴教程] 自动激活 x 自动更新订阅 x 如何更优雅地使用测试版激活码

  [复制链接]
n0b0dy
发表于 昨天 07:21 | 显示全部楼层 |阅读模式
本帖最后由 n0b0dy 于 2025-4-23 15:12 编辑

前情提要:https://bbs.kafan.cn/thread-2267589-1-1.html

为什么要说“更”呢?
因为安装后不需要手动输入激活码激活,快到期时不需要手动更新授权许可,而是通过计划任务自动完成。仅适用于 64 位 Windows 系统,8.1 及以上,以及卡巴斯基针对家庭用户的安全产品。

以下是步骤:
0. 如果当前有安装卡巴斯基,请卸载,且不要保留授权许可

1. 将本文最后的代码保存为扩展名是 .bat 的批处理文件

2. 下载卡巴斯基官方安装程序,将其重命名为 startup.exe,并与上一步得到的 .bat 文件放置于同一文件夹

3. 运行 .bat
Screenshot 2025-04-23 005418.png
这里选择 "y",才能更优雅地使用测试版激活码。如果不想多一个计划任务,就选择 "n",回归手动

4. 选择想安装的产品
Screenshot 2025-04-23 010200.png

5. 坐和放宽,期间不要手贱,不要关闭出现的 cmd 窗口,只需等待安装完成

回头再补 FAQ
复活节过完了,这次没有彩蛋
  1. @echo off
  2. REM Set the current directory
  3. cd /d "%~dp0"

  4. REM Step 1: Get admin rights
  5. NET FILE 1>NUL 2>NUL
  6. if '%errorlevel%' == '0' ( goto :gotAdmin ) else ( powershell Start-Process '%0' -Verb runAs & exit /B )

  7. :gotAdmin
  8. REM Step 2: Get version information from startup.exe
  9. setlocal EnableDelayedExpansion
  10. for /f "usebackq delims=" %%i in (`powershell -command "& {(Get-Item '.\startup.exe').VersionInfo.ProductVersion}"`) do (
  11.     set "fullversion=%%i"
  12. )
  13. REM Extract just the first two segments (e.g., 21.20 from 21.20.8.505)
  14. for /f "tokens=1,2 delims=." %%a in ("!fullversion!") do (
  15.     set "majorversion=%%a.%%b"
  16. )
  17. echo Detected Kaspersky version: !majorversion!

  18. REM Step 3: Ask user to choose
  19. :autoRenewal
  20. echo.
  21. echo Would you like to enable automatic license renewal?
  22. set /p renewal="Enter your choice (y/n): "
  23. if "%renewal%"=="y" (
  24.     goto :editionSelection
  25. ) else if "%renewal%"=="n" (
  26.     goto :installation
  27. ) else (
  28.     echo Invalid choice.
  29.     goto :autoRenewal
  30. )

  31. :editionSelection
  32. echo.
  33. echo Please select Kaspersky edition:
  34. echo 1. Standard
  35. echo 2. Plus
  36. echo 3. Premium
  37. echo.
  38. set /p edition="Enter your choice (1-3): "

  39. if "%edition%"=="1" (
  40.     set "editionName=Kaspersky Standard"
  41.     set "licenseKey=GAJPU-UTD18-3B2JJ-62CQ2"
  42. ) else if "%edition%"=="2" (
  43.     set "editionName=Kaspersky Plus"
  44.     set "licenseKey=GE86F-9WQRM-KK5PG-1ZE2W"
  45. ) else if "%edition%"=="3" (
  46.     set "editionName=Kaspersky Premium"
  47.     set "licenseKey=5AP55-UFAT1-QUMNN-7CUDZ"
  48. ) else (
  49.     echo Invalid choice.
  50.     goto :editionSelection
  51. )

  52. echo.
  53. echo Selected edition: %editionName%

  54. :installation
  55. REM Step 4: Run "startup.exe" without self protection
  56. echo.
  57. echo Installing Kaspersky with self protection disabled...
  58. start "" startup.exe /pSelfProtection=0

  59. REM Step 5: Monitor registry key and modify values during installation
  60. echo.
  61. echo Monitoring and updating registry values...
  62. :checkRegistry
  63. REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\KasperskyLab\AVP%majorversion%\environment" /v "ProductStatus" >nul 2>&1
  64. if %errorlevel% equ 0 (
  65.     echo Registry found, applying modifications...
  66.     REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\KasperskyLab\AVP%majorversion%\environment" /v "ProductStatus" /t REG_SZ /d "" /f >nul 2>&1
  67.     echo Registry modifications completed.
  68.     goto :setupTask
  69. ) else (
  70.     goto :checkRegistry
  71. )

  72. :setupTask
  73. if "%renewal%"=="n" (
  74.     goto :done
  75. )

  76. REM Step 6: Manage scheduled task for license renewal
  77. :search
  78. REM Clear previous value
  79. set "avp="

  80. REM Search for avp.com under Kaspersky Lab directory
  81. for /f "delims=" %%A in ('dir /b /s /a-d "C:\Program Files (x86)\Kaspersky Lab\avp.com" 2^>nul') do (
  82.     set "avp=%%A"
  83. )

  84. if not defined avp (
  85.     timeout /t 5 >nul
  86.     goto :search
  87. )

  88. echo.
  89. echo Found avp.com at: %avp%
  90. echo Creating new license renewal task to run every 28 days...

  91. set "taskname=Kaspersky License Renewal"
  92. set "xmlfile=%TEMP%\task.xml"

  93. REM Creating new license renewal task...
  94. schtasks /create /tn "%taskname%" /tr "\"%avp%\" LICENSE /add %licenseKey%" /sc DAILY /mo 28 /f >nul 2>&1

  95. REM Exporting the task to XML...
  96. schtasks /query /tn "%taskname%" /xml > "%xmlfile%"

  97. REM Modifying XML settings...

  98. REM Use PowerShell to update XML
  99. powershell -Command ^
  100.     "(Get-Content -Path '%xmlfile%') -replace '<StartWhenAvailable>false</StartWhenAvailable>', '<StartWhenAvailable>true</StartWhenAvailable>' |" ^
  101.     "ForEach-Object {$_ -replace '<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>', '<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>'} |" ^
  102.     "Set-Content -Path '%xmlfile%'" >nul 2>&1

  103. REM Re-importing modified task...
  104. schtasks /delete /tn "%taskname%" /f >nul 2>&1
  105. schtasks /create /tn "%taskname%" /xml "%xmlfile%" /f >nul 2>&1

  106. echo Task updated successfully.
  107. echo.
  108. echo Activating %editionName%...

  109. :checkStartup
  110. REM Check if avp.exe is running
  111. tasklist | find /i "avp.exe" >nul 2>&1
  112. if %errorlevel% neq 0 (
  113.     timeout /t 5 >nul 2>&1
  114.     goto :checkStartup
  115. )

  116. schtasks /run /tn "%taskname%"

  117. echo.
  118. echo Selected edition: %editionName%
  119. echo Using version: %majorversion%
  120. echo License key: %licenseKey%

  121. :done
  122. echo Process completed successfully.
  123. endlocal
  124. timeout /t 10
复制代码

评分

参与人数 3人气 +9 收起 理由
我是风我是风 + 3 版区有你更精彩: )
huawei_518 + 3 感谢提供分享
123inuyasha + 3 精品文章

查看全部评分

fangxiang
发表于 昨天 07:51 | 显示全部楼层
支持版本升级吗?
huawei_518
发表于 昨天 08:41 | 显示全部楼层
本帖最后由 huawei_518 于 2025-4-23 22:27 编辑

感谢分享,对于中文版,英文小白,我顺便翻译下.
  1. @echo off
  2. chcp 936 >nul 2>&1
  3. REM 设置当前目录
  4. cd /d "%~dp0"

  5. REM 步骤1:获取管理员权限
  6. NET FILE 1>NUL 2>NUL
  7. if '%errorlevel%' == '0' ( goto :gotAdmin ) else ( powershell Start-Process '%0' -Verb runAs & exit /B )

  8. :gotAdmin
  9. REM 步骤2:从startup.exe获取版本信息
  10. setlocal EnableDelayedExpansion
  11. for /f "usebackq delims=" %%i in (`powershell -command "& {(Get-Item '.\startup.exe').VersionInfo.ProductVersion}"`) do (
  12.     set "fullversion=%%i"
  13. )
  14. REM 提取前两个版本段(例如从21.20.8.505提取21.20)
  15. for /f "tokens=1,2 delims=." %%a in ("!fullversion!") do (
  16.     set "majorversion=%%a.%%b"
  17. )
  18. echo 检测到卡巴斯基版本: !majorversion!

  19. REM 步骤3:用户选择环节
  20. :autoRenewal
  21. echo.
  22. echo 是否启用许可证自动续期?
  23. set /p renewal="请输入选择(y/n): "
  24. if /i "%renewal%"=="y" (
  25.     goto :editionSelection
  26. ) else if /i "%renewal%"=="n" (
  27.     goto :installation
  28. ) else (
  29.     echo 无效选择
  30.     goto :autoRenewal
  31. )

  32. :editionSelection
  33. echo.
  34. echo 请选择卡巴斯基版本:
  35. echo 1. 标准版
  36. echo 2. 加强版
  37. echo 3. 优选版
  38. echo.
  39. set /p edition="请输入选择(1-3): "

  40. if "%edition%"=="1" (
  41.     set "editionName=卡巴斯基标准版"
  42.     set "licenseKey=GAJPU-UTD18-3B2JJ-62CQ2"
  43. ) else if "%edition%"=="2" (
  44.     set "editionName=卡巴斯基加强版"
  45.     set "licenseKey=GE86F-9WQRM-KK5PG-1ZE2W"
  46. ) else if "%edition%"=="3" (
  47.     set "editionName=卡巴斯基优选版"
  48.     set "licenseKey=5AP55-UFAT1-QUMNN-7CUDZ"
  49. ) else (
  50.     echo 无效选择
  51.     goto :editionSelection
  52. )

  53. echo.
  54. echo 已选版本:%editionName%

  55. :installation
  56. REM 步骤4:禁用自我保护运行startup.exe
  57. echo.
  58. echo 正在禁用自我保护安装卡巴斯基...
  59. start "" startup.exe /pSelfProtection=0
  60. if %errorlevel% neq 0 (
  61.     echo 启动 startup.exe 失败
  62.     goto :done
  63. )

  64. REM 步骤5:安装过程中监控并修改注册表值
  65. echo.
  66. echo 正在监控并更新注册表值...
  67. :checkRegistry
  68. REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\KasperskyLab\AVP%majorversion%\environment" /v "ProductStatus" >nul 2>&1
  69. if %errorlevel% equ 0 (
  70.     echo 找到注册表项,正在应用修改...
  71.     REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\KasperskyLab\AVP%majorversion%\environment" /v "ProductStatus" /t REG_SZ /d "" /f >nul 2>&1
  72.     if %errorlevel% neq 0 (
  73.         echo 注册表修改失败
  74.         goto :done
  75.     )
  76.     echo 注册表修改完成
  77.     goto :setupTask
  78. ) else (
  79.     ping -n 2 127.0.0.1 >nul 2>&1
  80.     goto :checkRegistry
  81. )

  82. :setupTask
  83. if /i "%renewal%"=="n" (
  84.     goto :done
  85. )

  86. REM 步骤6:管理许可证续期的计划任务
  87. :search
  88. REM 清除之前的值
  89. set "avp="

  90. REM 在卡巴斯基软件目录下搜索avp.com
  91. for /f "delims=" %%A in ('dir /b /s /a-d "C:\Program Files (x86)\Kaspersky Lab\avp.com" 2^>nul') do (
  92.     set "avp=%%A"
  93. )

  94. if not defined avp (
  95.     timeout /t 5 >nul
  96.     goto :search
  97. )

  98. echo.
  99. echo 已在以下路径找到avp.com:%avp%
  100. echo 正在创建每28天运行一次的许可证续期任务...

  101. set "taskname=卡巴斯基许可证续期"
  102. set "xmlfile=%TEMP%\task.xml"

  103. REM 创建新的许可证续期任务...
  104. schtasks /create /tn "%taskname%" /tr "\"%avp%\" LICENSE /add %licenseKey%" /sc DAILY /mo 28 /f >nul 2>&1
  105. if %errorlevel% neq 0 (
  106.     echo 创建计划任务失败
  107.     goto :done
  108. )

  109. REM 将任务导出为XML...
  110. schtasks /query /tn "%taskname%" /xml > "%xmlfile%"
  111. if %errorlevel% neq 0 (
  112.     echo 导出计划任务XML失败
  113.     goto :done
  114. )

  115. REM 修改XML设置...

  116. REM 使用PowerShell更新XML
  117. powershell -Command ^
  118.     "(Get-Content -Path '%xmlfile%') -replace '<StartWhenAvailable>false</StartWhenAvailable>', '<StartWhenAvailable>true</StartWhenAvailable>' |" ^
  119.     "ForEach-Object {$_ -replace '<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>', '<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>'} |" ^
  120.     "Set-Content -Path '%xmlfile%'" >nul 2>&1
  121. if %errorlevel% neq 0 (
  122.     echo 修改计划任务XML失败
  123.     goto :done
  124. )

  125. REM 重新导入修改后的任务...
  126. schtasks /delete /tn "%taskname%" /f >nul 2>&1
  127. schtasks /create /tn "%taskname%" /xml "%xmlfile%" /f >nul 2>&1
  128. if %errorlevel% neq 0 (
  129.     echo 重新导入计划任务失败
  130.     goto :done
  131. )

  132. echo 任务更新成功
  133. echo.
  134. echo 正在激活%editionName%...

  135. :checkStartup
  136. REM 检查avp.exe是否运行
  137. tasklist | find /i "avp.exe" >nul 2>&1
  138. if %errorlevel% neq 0 (
  139.     timeout /t 5 >nul 2>&1
  140.     goto :checkStartup
  141. )

  142. schtasks /run /tn "%taskname%"

  143. echo.
  144. echo 已选版本:%editionName%
  145. echo 使用版本:%majorversion%
  146. echo 许可证密钥:%licenseKey%

  147. :done
  148. echo 处理成功完成
  149. endlocal
  150. timeout /t 10   
复制代码






评分

参与人数 1人气 +3 收起 理由
n0b0dy + 3 感谢翻译

查看全部评分

yanjun198201
发表于 昨天 08:58 | 显示全部楼层
请问支持什么版本的卡巴软件?中英文都可以吗?
metaverse
发表于 昨天 09:01 | 显示全部楼层
本帖最后由 metaverse 于 2025-4-23 09:36 编辑

感谢分享,赶紧靠近两位大佬,请问一下如果是91天的试用期只需要修改第109行的28数字吗?想改成89天
Wama
发表于 昨天 09:05 | 显示全部楼层
感谢分享,又省力了
xtmatao
发表于 昨天 09:59 | 显示全部楼层
本帖最后由 xtmatao 于 2025-4-23 10:44 编辑

第一时间尝鲜安装测试
使用https://bbs.kafan.cn/thread-2280898-1-1.html这个帖子的21.21
安装中选择 y ,中途cmd退出,之后安装完成,跳出输入激活码界面,并没有自动完成,是不支持该版本吗
抱歉,应该看到了,代码中指定版本号了修改版本号为新版也不能通过,测试失败
请大佬有空指点一下,还要修改啥?
继续测试21.20,一样的结果,安装完成仍然需要手动输入激活码,并没有自动完成

wsasecy
发表于 昨天 10:26 | 显示全部楼层
我只想说‘好’
飞飞鱼
发表于 昨天 10:32 | 显示全部楼层
本帖最后由 飞飞鱼 于 2025-4-23 10:51 编辑

第二部选择的时候选择了加强版,但是最后安装的还是标准版,激活码确实不用自己输入。
xtmatao
发表于 昨天 11:00 | 显示全部楼层
飞飞鱼 发表于 2025-4-23 10:32
第二部选择的时候选择了加强版,但是最后安装的还是标准版,激活码确实不用自己输入。

这边测试下来,安装完成仍然要输入激活码?用的是在线安装包,
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-4-24 06:07 , Processed in 0.128497 second(s), 20 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

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