KMS_VL_ALL_AIO - 智能激活脚本
- 这是一个批处理脚本,用于使用本地 KMS 服务器模拟器或外部服务器自动激活受支持的 Windows 和 Office 产品。
- 它被设计为无人值守并且足够智能,不覆盖产品的永久激活(Windows 或 Office),
只有未激活的产品才会被 KMS 激活(如果支持)。
- 此解决方案的旗舰功能是当安装后,它将提供 24/7 激活,而无需用户交互,无论系统本身何时请求(包括更新、重新激活、硬件更改、版本升级、新装 Office 等……)。
- 某些安全程序会将 KMS 模拟的文件报告为受感染文件(请参阅末尾附近的源代码),
这属于误报,只要你是从受信任的主页下载文件即可。
- 主页:
https://forums.mydigitallife.net/posts/838808/
备用链接:
https://github.com/abbodi1406/KMS_VL_ALL_AIO
https://pastebin.com/cpdmr6HZ
https://textuploader.com/1dav8
多合一 vs. 传统版
与传统的 KMS_VL_ALL 相比,KMS_VL_ALL_AIO 分支具有以下差异和其他功能:
- 便携式多合一脚本,更易于单独移动和分发。
- 所有选项和配置均可通过易于使用的菜单访问。
- 结合传统版脚本的所有功能(激活、自动更新设置、检查激活状态、设置完成)。
- 使用 AveYo 的 ascii 编码器将所需的二进制文件嵌入脚本(包括脚本 ReadMeAIO.html 本身)中。
- 可后续通过 Windows PowerShell 按需提取(解码)所需的文件。
- 一些菜单选项的简单文本着色(以便于区分)。
- 自动管理员提升请求。
它如何运行?
- 密钥管理服务(KMS)是 Microsoft 为批量许可客户(包括组织、学校或政府)提供的正版激活方法。
这些环境中的计算机(被称为 KMS 客户端)通过环境 KMS 主机服务器(授权的 Microsoft 许可密钥)而不是通过 Microsoft 激活服务器激活。
- 根据设计,KMS 激活期最长可达 180 天(6 个月),可随时更新和恢复期限。
通过适当的自动更新配置,它将会是一个持续的激活(基本上是永久性的)。
- KMS 模拟器(服务器和客户端)是基于反向工程 KMS 协议的复杂工具。
它可模仿 KMS 服务器/客户端的通信,并为受支持的 KMS 客户端提供干净的激活,而不会改变或破坏任何系统文件的完整性。
- Windows 或 Office 的更新并不会影响或阻止 KMS 激活,只有当新的 KMS 协议和本地仿真器一起使用时才会不工作。
- SppExtComObjPatcher 的机制使得其可充当请求就绪的 KMS 服务器,提供即时激活,无需外部计划任务或手动干预。
包括自动续订、自动激活批量版本的 Office、因硬件更改、日期更改、Windows 或 Office 版本更改而重新激活……等。在 Windows 7 上,以后安装的 Office 可能需要 OSPP.vbs 或脚本,或者打开 Office 程序启动首次激活。
- 此功能利用“映像文件执行选项”技术进行工作,程序类似于用于负责 KMS 进程的系统文件的 Application Verifier 自定义提供程序。
因此,操作系统本身处理 DLL 注入,允许钩住拦截的 KMS 激活请求并动态写入响应。在 Windows 8.1/10 上,它还处理 KMS 激活的本机限制,并重定向任何本地/私有 IP 地址,因为它是外部的(不同的堆栈)。
- 激活脚本包含 Windows Management Instrumentation Command WMIC 实用程序的高级检查和命令,用于查询和执行 Windows 和 Office 许可类的方法,
提供本机激活处理,几乎与官方 VBScript 工具 slmgr.vbs 和 ospp.vbs 相同,但却是以自动方式。
- 脚本只访问系统中的 3 个部分(如果使用模拟器):
复制或链接文件到"C:\Windows\System32\SppExtComObjHook.dll"
添加 hook 注册表项到"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options"
添加 osppsvc.exe 密钥到"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OfficeSoftware专业版tectionPlatform"
支持的产品
可批量:
- Windows 10:
企业版、企业版 LTSC/LTSB、企业版 G、企业版多会话、教育版、专业版、专业工作站版、专业教育版、家庭版、家庭单语言版、家庭中文版 - Windows 8.1:
企业版、专业版、专业版(含 Media Center)、Core、Core Single Language、Core China、Pro for Students、Bing、Bing Single Language、Bing China、Embedded Industry Enterprise/Pro/Automotive - Windows 8:
企业版、专业版、专业版(含 Media Center)、Core、Core Single Language、Core China、Embedded Industry Enterprise/Pro - Windows 8/8.1/10 N 版变体(如:专业版 N)同样支持
- Windows 7:
Enterprise /N/E、Professional /N/E、Embedded Standard/POSReady/ThinPC - Windows Server 2019/2016:
LTSC 版本(Standard、Datacenter、Essentials、Cloud Storage、Azure Core、Azure Datacenter、Server ARM64)、半年通道版本(Standard ACor、Datacenter ACor) - Windows Server 2012 R2:
Standard、Datacenter、Essentials、Cloud Storage - Windows Server 2012:
Standard、Datacenter、MultiPoint Standard、MultiPoint Premium - Windows Server 2008 R2:
Standard、Datacenter、Enterprise、MultiPoint、Web、HPC Cluster - Office 批量版本 2010 / 2013 / 2016 / 2019 / 2021
______________________________
以下这些版本通过 KMS 激活最多仅 45 天:
- Windows 10 家庭版变种
- Windows 8.1 Core 变种、专业版(含 Media Center)、Pro Student
以下这些版本通过 KMS 激活最多仅 30 天:
- Windows 8 Core 变种、专业版(含 Media Center)
注:
- 受支持的 Windows 产品不需要批量转换,只需要 GVLK(KMS 密钥),脚本将会相应地安装。
- 在 Windows 7 上的 KMS 激活存在与 SLIC 2.1 和 Windows 标记相关的限制。有关更多信息,请参阅 此处和此处。
______________________________
不支持的产品
- Office Retail
- Office UWP(Windows 10 应用)
- 按照设计不支持激活 KMS 的 Windows 版本:
Windows 评估版本
Windows 7(Starter、HomeBasic、HomePremium、Ultimate)
Windows 10(Cloud“S”、IoTEnterprise、IoTEnterpriseS、ProfessionalSingleLanguage……等)
Windows Server(Server Foundation、Storage Server、Home Server 2011……等)
Office 零售版本转批量版本
在使用 KMS 激活 Office 零售版本之前,必须首先将 Office 零售版本转换为批量版本
特别是,不区分从 ISO(如 ProPlus2019Retail.img)安装还是使用 Office 部署工具安装的 Office Click-to-Run 产品。
从版本 36 开始,激活脚本实现了 Office C2R 的自动许可证转换。
注:
- 支持即点即用产品:Office 365(Microsoft 365 Apps)、Office 2021 / 2019 / 2016、Office 2013
- 已激活的 Office 零售产品将从转换过程中跳过。
- Office 365 本身没有批量许可证,因此将转换为 Office Mondo 许可证。
- Office 专业版套件将使用 Office 专业增强版许可证进行转换。
- Office 家庭企业版/家庭和学生版套件将使用 Office 标准许可证转换。
- Office 2016 产品将转换为相应的 Office 2019 许可证。
- 如果没有检测到 Office 2019 RTM 许可证,将使用 Office 2016 许可证代替
或者,如果自动转换不起作用,或者你更喜欢使用单独的转换器脚本,则可使用:
Office-C2R-Retail2Volume
你可以使用其他可以转换许可的工具:
- OfficeRTool(支持转换并激活 Office UWP)
- Office Tool Plus
使用方式
- 某些功能需要内置 Windows PowerShell,请确保未将其禁用或从系统中删除。
- 移除任何其他的 KMS 解决方案。
- 临时暂停防病毒实时防护,或从扫描中排除已下载的文件和解压缩的文件夹,以避免被隔离。
- 如果你在 Windows 10 或 8.1 上使用 Windows Defender,此脚本会自动为
C:\Windows\System32\SppExtComObjHook.dll
添加一个排除项 因此,最好不要禁用 Windows Defender,而是在运行脚本之前排除下载的文件和提取的文件夹。
- 将所下载的文件内容解压到一个没有特殊字符或长空格的简单路径中。
- 运行此激活脚本,需要管理员权限。
- KMS_VL_ALL 提供 3 种激活模式。
激活模式
自动续期
推荐模式,你只需安装一次激活模拟器。 之后,系统本身将按计划处理并续订激活。
若要运行此模式:
- 在菜单中,按 2 以安装激活自动续订
如果你正在使用防病毒软件,最好从扫描保护中排除此文件:C:\Windows\System32\SppExtComObjHook.dll
如果以后安装了批量版本的 Office 产品,它将在此模式下自动激活。
此外,如果要转换和激活 Office C2R,请续订激活或激活新产品:
- 在菜单中,按 1 激活[自动更新模式]
在 Windows 8 和更高版本上,脚本会将内建系统计划任务 SvcRestartTaskLogon
复制到 SvcTrigger
这只是一个预防措施,可确保评估并遵循“自动续期”期限,它与激活本身没有直接关系,你可以手动将其删除。
若要移除此模式:
- 在菜单中,按 3 以完全卸载
____________________________________________________________
手动
无残留模式,你只需要运行脚本 Activate.cmd,而不会在系统中留下任何 KMS 模拟器的跟踪痕迹。
若要运行此模式:
- 确保未安装自动续订解决方案,或已将其删除
- 在菜单中,按 1 激活[手动模式]
如果新安装了产品(例如 Office),或者是 Windows 版本已切换,你必须再次运行脚本 Activate.cmd 才能激活。
在 KMS 激活期限到期之前,你将必须再次运行脚本以进行激活。
你可以在此时间段内随时运行脚本并激活,以将时间段更新为最大间隔。
如果脚本在完成该过程之前意外终止,请再次运行该脚本,然后:
- 在菜单中,按 3 以完全卸载
____________________________________________________________
外部
独立模式,你可以在不使用本地 KMS 模拟器的情况下针对受信任的外部 KMS 服务器进行激活。
外部服务器既可以是网址,也可以是网络 IP 地址(本地 LAN 或虚拟机)。
若要运行此模式:
- 在菜单中,按字母 E 激活[外部模式]
- 输入或粘贴服务器地址,然后按 Enter 键
如果你以后安装了批量版 Office 产品,那么它将被自动激活(如果仍然连接外部服务器)。
所使用的服务器地址将会保留在系统中,以允许已激活的产品通过该地址自动续订,
如果服务器不再可用,则需要使用新的可用服务器再次运行脚本模式。
如果要清除服务器注册和跟踪:
- 在菜单中,按 3 完全卸载(这也会清除 KMS 缓存)
附加选项
启用调试模式
默认情况下,调试模式为 OFF。
此选项仅与激活功能一起使用(菜单选项 [1]、[2]、[3]、[E])。
如果你需要启用此功能以进行故障排除或检测任何激活错误:
- 在菜单中,按 4 将状态更改为启用调试模式 [是]
- 然后,运行所需的激活选项。
______________________________
处理 Windows / 处理 Office
默认情况下,此脚本设置为处理并尝试激活 Windows 和 Office。
但是,如果出于任何原因要关闭对 Windows 或 Office 的处理,请执行以下操作:
- 你担心它可能会覆盖永久激活
- 你想要加快操作速度(你已经永久激活了 Windows 或 Office)
- 你希望以后根据条款激活 Windows 或 Office
若要做到这一点:
- 在菜单中,按 5 将状态更改为处理 Windows [否]
- 在菜单中,按 6 将状态更改为处理 Office [否]
注:
如果 Windows 或 Office 的安装已经是批量版本(已安装 GVLK),则关闭选项将不会很有效,
这是因为系统本身可能会尝试触发并通过 KMS 激活产品,特别是在 Windows 8 及更高版本上。
______________________________
转换 Office C2R-R2V
默认情况下,此脚本设置为将检测到的 Office C2R 零售版本自动转换为批量版本(已激活的零售版本产品除外)。
但是,如果你希望关闭此功能,请执行以下操作:
- 在菜单中,按 7 将状态更改为转换 Office C2R-R2V [否]
______________________________
跳过 Windows 10 KMS 2038
如果检测到 KMS 2038,则默认情况下将脚本设置为检查并跳过 Windows 10 激活。
但是,如果你想要恢复正常的 KMS 激活:
- 在菜单中,按字母 X 将状态更改为跳过 Windows 10 KMS38 [否]
注:
在 Windows 10 上,如果 SkipKMS38
处于打开状态(默认),即使处理 Windows
为否,也将始终检查并处理 Windows。
其他设置选项
检查激活状态
你可以使用这些选项来检查 Windows 和 Office 产品的状态。
检查激活状态 [vbs]:
- 查询和执行官方许可的 VBScript:Windows 的 slmgr.vbs、Office 的 ospp.vbs
- 它会显示 Windows 的激活到期日期
- Office 2010 ospp.vbs 显示的信息很少
检查激活状态 [wmic]:
- 查询和执行本机 WMI 功能,不涉及任何脚本
- 它显示了更多信息(SKU ID,密钥通道)
- 它显示所有产品的激活到期日期
- 它显示了 Office 2010 的更多详细信息
- 它可以显示 Office UWP 应用的状态
______________________________
创建 $OEM$ 文件夹
创建所需的文件夹结构和脚本,以在 Windows 安装期间使用从而预激活系统。
然后,将 $oem$
文件夹复制到安装介质(ISO / USB)中的 sources
文件夹中。
如果你已经使用了另一个 setupcomplete.cmd,请复制此命令行并将其正确粘贴到 setupcomplete.cmd 中
call %~dp0KMS_VL_ALL_AIO.cmd /s /a
注:
- 默认情况下,所创建的 setupcomplete.cmd 设置为在自动续订模式下运行 KMS_VL_ALL_AIO.cmd。
- 你可以将命令行开关更改为其他模式,也可以添加任何配置开关。
- 以后,如果要卸载项目,请使用菜单选项[3] 完全卸载。
- 在 Windows 8 和更高版本上,如果该版本的默认安装密钥为 OEM 通道,将禁止运行 setupcomplete.cmd。
______________________________
自述文件
解压并打开此 ReadMeAIO.html。
高级 KMS 选项
你可以在运行之前通过使用记事本编辑脚本来手动修改这些与 KMS 相关的选项。
-
KMS_RenewalInterval
设置 KMS 自动续订计划的间隔(默认为 10080 = 每周)
这只会对自动续订或外部模式产生很大影响
允许值(以分钟为单位):从 15 到 43200
-
KMS_ActivationInterval
设置失败激活更新 KMS 重新尝试计划的时间间隔,或未激活的产品以尝试激活
这不会影响整个 KMS 期间(180 天)或续订计划
允许值(以分钟为单位):从 15 到 43200
-
KMS_HWID
为本地 KMS 模拟服务器设置硬件哈希值(仅影响 Windows 8.1/10)
需要 0x 前缀
-
KMS_Port
设置用于 KMS 通信的 TCP 端口
提示:
高级用户还可以编辑脚本并更改配置选项或激活模式的默认状态。
但是,命令行开关优先于内部选项。
命令行开关
激活开关:
- 自动续期模式:
/a
- 手动模式:
/m
- 外部模式:
/e pseudo.kms.server
- 卸载并移除所有:
/r
配置开关:
- 静默运行:
/s
- 静默运行并创建简单的日志:
/s /L
- 调试模式运行:
/d
- 静默调试模式:
/s /d
- 仅处理 Windows:
/w
- 仅处理 Office:
/o
- 关闭 Office C2R-R2V 转换:
/c
- 不要跳过 Windows 10 KMS38:
/x
说明:
- 所有开关均不区分大小写,可以按任何顺序工作,但必须用空格分隔。
- 你可以同时指定多个开关。
- 如果指定的外部模式开关
/e
没有服务器地址,它将更改为“手动”或“自动”(取决于 SppExtComObjHook.dll 的存在)。
- 如果同时指定了多个激活开关
/a /m /e
,则最后一个优先。
- 卸载开关
/r
始终优先于激活开关
- 如果指定了这些配置开关
/w /o /c /x
而没有其他开关,则它们只会更改菜单中的相应状态。
- 如果同时指定了处理 Windows / Office 开关
/o /w
,则最后一个优先。
- 日志开关
/L
仅适用于静默开关/s
- 如果指定了静默开关
/s
和/或调试开关/d
,而没有激活开关,则脚本将仅在“手动”或“自动续订”模式下运行激活(取决于 SppExtComObjHook.dll 的存在)。
示例:
静默外部激活:
KMS_VL_ALL_AIO.cmd /s /e pseudo.kms.server
仅适用于 Windows 的自动续订激活:
KMS_VL_ALL_AIO.cmd /o /w /a
在静默调试模式下手动激活,不跳过 W10 KMS38:
KMS_VL_ALL_AIO.cmd /m /x /d /s
更改菜单中的配置选项(仅限处理 Office),不转换 C2R-R2V:
KMS_VL_ALL_AIO.cmd /o /c
静默激活(如果已安装,则为自动续订模式,否则为手动模式):
KMS_VL_ALL_AIO.cmd /s
备注:
- 通常,Windows 批处理脚本不适用于异常的文件夹路径和文件名,这些文件夹路径和文件名包含非 ASCII 和 Unicode 字符,长路径和空格或某些特殊字符
`` ~ ; ' , ! @ % ^ & ( ) [ ] { } + =
- 编码 KMS_VL_ALL_AIO 脚本以尽可能正确地处理这些限制。
- 如果更改了脚本文件名并添加了一些不寻常的字符或空格,请确保在从命令行提示符或其他脚本运行脚本时将脚本名(或完整路径)括在“”中。
- 默认情况下,即使资源管理器上下文菜单选项“以管理员身份运行”也将无法在其中某些路径上执行。
为了解决此问题,请以管理员身份打开命令提示符,然后复制/粘贴并执行以下命令:
set _r=^%SystemRoot^%
reg add HKLM\SOFTWARE\Classes\batfile\shell\runas\command /f /v "" /t REG_EXPAND_SZ /d "%_r%\System32\cmd.exe /C \"\"%1\" %*\""
reg add HKLM\SOFTWARE\Classes\cmdfile\shell\runas\command /f /v "" /t REG_EXPAND_SZ /d "%_r%\System32\cmd.exe /C \"\"%1\" %*\""
疑难解答
如果首次尝试激活失败:
- 再次运行脚本。
- 重新启动系统,然后重试。
- 检查防病毒软件是否阻止文件
C:\Windows\SppExtComObjHook.dll
- 检查系统完整性,请以管理员身份打开命令提示符,并分别执行以下命令:
仅限 Windows 8.1 和 10:Dism /online /Cleanup-Image /RestoreHealth
然后,对任意操作系统:sfc /scannow
如果已经安装了自动续订,但是激活开始失败,请再次运行安装(选项 2),或者完全卸载,然后再次运行安装。
对于Windows 7,如果你遇到 KB4487266 中所述的错误,请执行建议的修复程序。
如果你在 Windows 7 上遇到错误 0xC004F035 ,则表示你的计算机无法进行 KMS 激活。有关详细信息,请参阅此处和此处。
如果你遇到错误 0x80040154,主要与错误配置的 Windows 10 KMS38 激活相关,重新启动系统并重新启动,或恢复为正常 KMS。
如果你遇到错误 0xC004E015,则主要与错误配置的 Office 零售到批量转换有关,请尝试重新安装系统许可证:cscript //Nologo %SystemRoot%\System32\slmgr.vbs /rilc
如果你在 Windows Server 上遇到其中一个错误,请验证系统是否已正确地从评估版本转换为零售/批量版本:
0xC004E016 - 0xC004F014 - 0xC004F034
如果在上述提示之后激活仍然失败,你可以启用调试模式以帮助确定原因:
- 从菜单中按 5 将状态更改为启用调试模式 [是]
- 然后,运行所需的激活选项。
- 或
- 使用带有激活模式开关的调试命令行开关运行脚本:
KMS_VL_ALL_AIO.cmd /d /m
- 等待操作完成并创建日志 Debug.log
- 在主页(MDL 论坛)上传或发布日志文件以供检查
如果你在 Office 激活方面遇到问题,或者获得了不需要或重复的许可证(例如 Office 2016 和 2019):
- 从此处下载 Office Scrubber 软件包。
- 要摆脱任何有冲突的许可证,请运行脚本 Uninstall_Licenses.cmd,之后必须启动任意 Office 程序来修复许可证。
- 你也可以尝试使用脚本 Uninstall_Keys.cmd 进行类似操作。
- 如果你希望完全删除 Office 和剩余的东西并开始清理:
通常从控制面板/程序和功能中卸载 Office
之后运行脚本 Full_Scrub.cmd
之后,安装新的 Office。
最后提示,你可以按照 KB2736303 中的说明进行尝试(这可能会要求你事后修复 Office)。
源代码
SppExtComObjHookAvrf
https://forums.mydigitallife.net/posts/1508167/
https://app.box.com/s/mztbabp2n21vvjmk57cl1puel0t088bs
Visual Studio:
VS 2017(或 2019)的启动快捷方式开发人员命令提示符
执行:
MSBuild SppExtComObjHook.sln /p:configuration="Release" /p:platform="Win32"
MSBuild SppExtComObjHook.sln /p:configuration="Release" /p:platform="x64"
MinGW GCC:
下载 mingw-w64
Windows x86
Windows x64
两者都可以编译 32 位和 64 位的二进制文件
在 mingw32 或 mingw64 文件夹中提取并放置在 SppExtComObjHook 文件夹
运行脚本 _compile.cmd
______________________________
SppExtComObjPatcher
Visual Studio:
https://forums.mydigitallife.net/posts/1457558/
https://app.box.com/s/mztbabp2n21vvjmk57cl1puel0t088bs
MinGW GCC:
https://forums.mydigitallife.net/posts/1462101/
贡献者
namazso - SppExtComObjHook、IFEO AVrf 定制提供者。
qad - SppExtComObjPatcher、IFEO 调试程序。
Mouri_Naruto - SppExtComObjPatcher-DLL
os51 - 将 SppExtComObjPatcher 移植到 MinGW GCC,Retail/MAK 检查示例。
MasterDisaster - 原始脚本,WMI 方式。
Windows_Addict - 功能建议、想法、测试并共同增强。
AveYo - Compressed2TXT ascii 编码器。
dbenham、jeb - 在批处理脚本中为文本添加颜色。
dbenham - 设置与窗口高度无关的缓冲区高度。
hearywarlot - 以管理员身份自动提权。
qewpal - KMS-VL-ALL 脚本。
NormieLyfe - GVLK 分类、Office 审核帮助。
rpo、mxman2k、BAU、presto1234 - 脚本建议。
Nucleus、Enthousiast、s1ave77、l33tisw00t、LostED、Sajjo 和 MDL 社区的兴趣、反馈和帮助。
正义羊 - 为 KMS-VL-ALL 脚本进行简体中文本地化。
abbodi1406 - KMS_VL_ALL author
致谢
MDL 论坛 - 最新和当前模拟器的主页。
mikmik38 - 首个 KMSv5 和 KMSv6 互转源代码。
CODYQX4 - 易于使用的 KMS 模拟器源代码。
Hotbird64 - 资源丰富的 vlmcsd 工具和 KMS 模拟器源代码开发。
cynecx - SECO 注入器分支,SppExtComObj KMS 功能。
deagles - SppExtComObjHook 注入器。
deagles - KMSServerService。
ColdZero - CZ VM 系统。
ColdZero - KMS ePID 生成程序。
kelorgo、bedrock - TAP 适配器的 TunMirror 分支。
mishamosherg - WinDivert FakeClient 分支。
Duser - KMS 模拟器分叉。
Boops - Tool Ghost KMS(TGK)。
ZWT、nosferati87、crony12、FreeStyler、Phazor - KMS 模拟器开发。