查看: 9028|回复: 77
收起左侧

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

  [复制链接]
n0b0dy
发表于 2025-4-23 07:21:10 | 显示全部楼层 |阅读模式
本帖最后由 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
复制代码

评分

参与人数 9人气 +28 收起 理由
hipoxiaxxx + 3
冰柠橙夏 + 5 版区有你更精彩: )
milolee + 3 版区有你更精彩: )
alan521 + 2 版区有你更精彩: )
痞子潘 + 3

查看全部评分

fangxiang
发表于 2025-4-23 07:51:11 | 显示全部楼层
支持版本升级吗?
huawei_518
发表于 2025-4-23 08:41:31 | 显示全部楼层
本帖最后由 huawei_518 于 2025-4-24 12:45 编辑

感谢分享,对于中文版,英文小白,我顺便翻译下.将代码复制到记事本打开,点另存为,将编码改成ANSI后保存为.bat文件即可.
  1. @echo off
  2. REM 设置当前目录
  3. cd /d "%~dp0"

  4. REM 步骤1:获取管理员权限
  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 步骤2:从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 提取前两个版本段(例如从21.20.8.505提取21.20)
  14. for /f "tokens=1,2 delims=." %%a in ("!fullversion!") do (
  15.     set "majorversion=%%a.%%b"
  16. )
  17. echo 检测到卡巴斯基版本: !majorversion!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  114. REM 修改XML设置...

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

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

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

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

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

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

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







评分

参与人数 4人气 +11 收起 理由
alan521 + 3 版区有你更精彩: )
冰柠橙夏 + 3 赞一个!
月落、点星灯 + 2 版区有你更精彩: )
n0b0dy + 3 感谢翻译

查看全部评分

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

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

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

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

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

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

本版积分规则

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

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-5-25 23:29 , Processed in 0.148657 second(s), 20 queries .

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

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