快捷登录,享 免费下载
首页 > 教程资讯 > 教程详情

手把手教你解决『Office非正版横幅/弹窗』+KMS技术详解

教程文章 完美下载小客服 2021-07-29
文章分享
方法一:一键修复

    选择其他页面中的“Fix_banner_New”,点击“开始”,即可一键修复。

方法二:手动修复步骤详解

    使用KMS激活总共3步:

  1. 设置KMS主机IP地址;
  2. 安装GVLK密钥;
  3. 执行激活命令。实际上很多人都会,但我相信有90%以上的人不清楚“设置KMS主机IP地址”各种方法的区别,这方面网上几乎没有相关介绍。如果不懂这个区别,你会发现有的电脑用这3条命令很容易激活,有的电脑明明系统都一样,就是无法激活,也找不到原因。要想KMS激活的成功率高,远不止这3条命令,有很多技巧在里面。今天就单独结合“设置KMS主机IP地址”这一个技巧来介绍。

    好了,下面开始正题:

    给如下3项注册表主键各自新建一个名为“KeyManagementServiceName”的“键”,键值都设置为“0.0.0.0”。然后就修复完成了,简单吧?如果你会修改,那么后面的操作方法可以跳过。

1、HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform
2、HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform
3、HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\0ff1ce15-a989-479d-af46-f275c6370663\9caabccb-61b1-4b4b-8bec-d10a3c3ac2ce

    什么?还没开始就结束了?是的。

接下来我们介绍这几个注册表的修改操作方法:

    第1、2项注册表所有人都是一样的,通过“新建-字符串值(S):KeyManagementServiceName,值为0.0.0.0”即可完成。

    只有第3项是各不相同的,因为安装的Office不同, “9caabccb-61b1-4b4b-8bec-d10a3c3ac2ce” 就是Office2016 Mondo VL的SKU ID,不同版本的Office,此ID值均是不同的。昨天介绍了如何查看SKU ID的方法,手动新建“KeyManagementServiceName”,并添加键值“0.0.0.0”。

    今天我们换一种方法,使用命令设置:

cscript "%ProgramFiles%\Microsoft Office\Office16\OSPP.VBS" /sethst:0.0.0.0
<<左右滑动>>

    对比后会发现,使用上面这条命令和直接添加第3项注册表,这两种方法效果完全一样。需要注意的是上面命令中"%ProgramFiles%\Microsoft Office\Office16\OSPP.VBS",代表Office安装目录下的ospp.vbs文件,如果你的安装目录不一样,此处请注意修改。

    我们再看一条命令:

cscript "%SystemRoot%\system32\slmgr.vbs" /skms 0.0.0.0

    对比后会发现,使用上面这条命令和直接添加第1项注册表,这两种方法效果完全一样。

    第2项注册表只能通过手动添加注册表键值进行修改(新建-字符串值(S):KeyManagementServiceName,值为0.0.0.0)。

    到此为止,修改注册表或者通过命令设置“KMS主机IP地址”的方法就介绍完了。那么回到上面提到的“区别”,我们再来审视这些操作,并结合KMS激活的方法来讨论,下面的内容也是前文所说的网上几乎找不到资料的内容,如果你对KMS相关的技术内容不关心,下面这一段可以忽略。

KMS技术详解:

    众所周知KMS激活的第一步就是设置“KMS主机IP地址”,实际上无需按照上面这样设置三次。只需添加第1项注册表或第3项注册表均可。它两个的区别在于:3的优先级要高于1,因为3设置的sku id的KMS主机地址,1设置的通用的KMS主机地址。在3存在的情况下,无论你怎么设置1,都是无效的,这也是很多人使用批处理激活失败,找不到原因的地方之一。

    激活Office的时候,因为大多数人仅知道这一条命令(cscript ...ospp.vbs /sethst...)来“设置KMS主机IP地址”,因为它的优先级高(设置的是sku id),所以出现问题的情况较少;而激活Windows的时候这个区别尤为明显,大多数人也仅知道这一条命令(cscript ...slmgr.vbs /skms...),不幸的是这条命令设置的KMS主机地址,优先级低(设置的是通用),这种情况下必须先把优先级高的清除。

    我们再来总结一下,设置KMS主机IP地址通常有两种方式:1、修改注册表;2、执行CMD命令。不管是哪种方式,归根结底都是在修改注册表。而修改SKU ID的注册表优先级高、修改通用注册表优先级低。本小节实际都是在讲优先级的问题。实际上CMD命令不仅上面这两条,还有很多其他的命令(比如WMIC...),优先级各不相同,如果你不清楚它们归根结底都是在修改注册表,那么很容易陷入困境。

    不同产品的SKU ID是不同的,也就是说Windows 10 企业版和专业版就是两个SKU ID,Office 2019专业增强版和标准版也是两个SKU ID。至于怎么查看SKU ID,Office的昨天已经讲过了,Windows也可通过一些命令获取,不是这篇文章的重点,以下命令供参考。

wmic path SoftwareLicensingProduct  where (ApplicationID='0ff1ce15-a989-479d-af46-f275c6370663' and Description like '%%KMSCLIENT%%') get ID /VALUE

 

wmic path SoftwareLicensingProduct where (ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f' and Description like '%%KMSCLIENT%%'get ID /VALUE
方法三:自动修复(批处理)

    上面介绍的这么复杂,归结于以下几条命令即可完成(将如下内容保存到文本文档,并将“.txt”修改为“.cmd”,然后以管理员身份运行即可):

@echo offset SKUID=for /f "tokens=2 delims==" %%G in ('"wmic path SoftwareLicensingProduct where (ApplicationID='0ff1ce15-a989-479d-af46-f275c6370663' and Description like '%%KMSCLIENT%%' and not Description like '%%Office 15%%' and PartialProductKey is not NULL) get ID /VALUE" 2^>nul') do (if defined SKUID (call set "SKUID=!SKUID! %%G") else (call set "SKUID=%%G"))for %%# in (%SKUID%) do (reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\0ff1ce15-a989-479d-af46-f275c6370663\%%#" /f /v KeyManagementServiceName /t REG_SZ /d "0.0.0.0")reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /f /v KeyManagementServiceName /t REG_SZ /d "0.0.0.0"reg add "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /f /v KeyManagementServiceName /t REG_SZ /d "0.0.0.0"pause >nul

    清除上述设置的命令如下:

@echo offreg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\0ff1ce15-a989-479d-af46-f275c6370663" /freg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /f /v KeyManagementServiceNamereg delete "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /f /v KeyManagementServiceNamepause >nul

相关文章