告诉 Windows 7 停止尝试升级到 Windows 10?

Mar*_*rry 10 windows-10-upgrade windows-10

运行 Windows 7 家庭版的客户必须保留或同意 Windows 10 升级,因为我每天都会看到升级无法安装的消息。

此客户尚未准备好使用 Windows 10,因此安装失败是件好事。但是如何让它停止尝试呢?授予升级权限后,如何撤销该权限以使其停止尝试升级?

我运行了 Windows 更新疑难解答来清除更新,我卸载并隐藏了 KB3035583,但它仍在尝试升级。在任务管理器中,没有 GWX.EXE 进程。

事件日志失败消息:

Log Name:      System
Source:        Microsoft-Windows-WindowsUpdateClient
Date:          8/5/2015 1:28:58 AM
Event ID:      20
Task Category: Windows Update Agent
Level:         Error
Keywords:      Failure,Installation
User:          SYSTEM
Description:   Installation Failure: Windows failed to install the following update with 
               error 0x80240020: Upgrade to Windows 10 Home.
Run Code Online (Sandbox Code Playgroud)

WindowsUpdate.log 中的相关行:

2015-08-05  01:28:57:885    1068    6698    Agent   *************
2015-08-05  01:28:57:885    1068    6698    Agent   ** START **  Agent: Installing updates [CallerId = AutomaticUpdates]
2015-08-05  01:28:57:885    1068    6698    Agent   *********
2015-08-05  01:28:57:885    1068    6698    Agent     * Updates to install = 1
2015-08-05  01:28:57:885    1068    6698    Agent     *   Title = Upgrade to Windows 10 Home
2015-08-05  01:28:57:885    1068    6698    Agent     *   UpdateId = {27E79986-1150-4342-BDD2-76DF82C768D5}.201
2015-08-05  01:28:57:885    1068    6698    Agent     *     Bundles 1 updates:
2015-08-05  01:28:57:885    1068    6698    Agent     *       {FCD6621E-F5D4-4A95-AD43-28F0C58DD2F3}.201
2015-08-05  01:28:58:181    1068    6698    DnldMgr Preparing update for install, updateId = {FCD6621E-F5D4-4A95-AD43-28F0C58DD2F3}.201.
2015-08-05  01:28:58:181    27280   6f84    Misc    ===========  Logging initialized (build: 7.6.7601.18917, tz: -0700)  ===========
2015-08-05  01:28:58:181    27280   6f84    Misc      = Process: C:\Windows\system32\wuauclt.exe
2015-08-05  01:28:58:181    27280   6f84    Misc      = Module: C:\Windows\system32\wuaueng.dll
2015-08-05  01:28:58:181    27280   6f84    Handler :::::::::::::
2015-08-05  01:28:58:181    27280   6f84    Handler :: START ::  Handler: Windows Setup Install
2015-08-05  01:28:58:181    27280   6f84    Handler :::::::::
2015-08-05  01:28:58:181    27280   6f84    Handler   : Updates to install = 1
2015-08-05  01:28:58:181    1068    5ecc    AU  >>##  RESUMED  ## AU: Installing update [UpdateId = {27E79986-1150-4342-BDD2-76DF82C768D5}]
2015-08-05  01:28:58:181    1068    5ecc    AU    # WARNING: Install failed, error = 0x80240020 / 0x00000000
2015-08-05  01:28:58:181    27280   6f84    Handler   : WARNING: Exit code = 0x80240020
2015-08-05  01:28:58:181    1068    5ecc    AU  Write OSUpgradeState =14 with OSUpgradephase =2
2015-08-05  01:28:58:181    27280   6f84    Handler :::::::::
2015-08-05  01:28:58:181    27280   6f84    Handler ::  END  ::  Handler: Windows Setup Install
2015-08-05  01:28:58:181    27280   6f84    Handler :::::::::::::
Run Code Online (Sandbox Code Playgroud)

Mar*_*rry 14

进一步的谷歌搜索让我找到了一个看起来像是控制升级过程的注册表项。

尝试升级的机器具有以下值:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\OSUpgrade]
"KickoffDownload"=dword:00000001
"KickoffSource"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\OSUpgrade\State]
"OSUpgradeState"=dword:0000000e
"OSUpgradeStateTimeStamp"="2015-08-04 15:59:55"
"OSUpgradePhase"=dword:00000002
Run Code Online (Sandbox Code Playgroud)

另一台 Windows 7 机器,我Windows 10 发布之前删除了 KB3035583 (因此成功阻止了升级),具有以下值:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\OSUpgrade]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\OSUpgrade\State]
"OSUpgradeState"=dword:00000001
"OSUpgradeStateTimeStamp"="2015-07-28 10:09:55"
Run Code Online (Sandbox Code Playgroud)

我更新了“升级”机器上的注册表以匹配“被阻止”机器的注册表,然后重新启动机器。

另外,感谢@Ramhound 的评论,我发现了一个 $Windows.~BT 隐藏文件夹,里面有 5.1GB 的内容。我运行了磁盘清理并删除了“Windows 临时安装文件”。那个文件夹现在不见了。

我们将看看这是否成功阻止了升级。

2015 年 8 月 7 日更新

机器已停止尝试升级到 Windows 10,因此注册表更改肯定有效。我两天前设置的值没有改变。