检查是否有新的 Windows 版本可用并以编程方式安装

问题描述

我想以编程方式检查是否有新的 Windows“功能更新”(即 1904、20H2 等新的主要版本)可用。 WUAPI 似乎没有返回这些更新,但我可能犯了一个错误

我认为可以通过下载 Windows 10 Update Assistant 并使用一些记录不佳的标志调用它,或者通过解压缩 .iso 并调用 setup.exe 来在无人看管的情况下安装这些。但我真正想要的是 Windows 设置应用程序使用的界面。我想以编程方式基本上点击“搜索更新”,看看是否提供了功能更新,并可能安装。

无条件运行 setup.exe 不是解决方案(我已经知道怎么做)。 “切换到 WSUS”也不是,因为有问题的计算机可能受也可能不受 WSUS 管理。我想显示更新是否以及何时提供,无论它来自 Microsoft 的服务器还是 WSUS。有没有办法做到这一点(缩短屏幕抓取设置应用程序?:-D)。

解决方法

你见过 Boxstarter.org 吗?

Windows 安装自动化。 但是还有一个 Install-WindowsUpdate 功能。 查找、下载和安装所有 Windows 更新。默认情况下,只会搜索关键更新。但是,该命令采用 -Criteria 参数,允许传递自定义 Windows 更新查询。

Help Install-WindowsUpdate -Full

https://boxstarter.org/WinConfig

这应该会给你任何隐藏的更新:

Install-WindowsUpdate -criteria "IsHidden=1 and IsInstalled=0 and Type='Software' and BrowseOnly=1"

输出:

++ Boxstarter starting Checking for updates...
Restarting windows update service
++ Boxstarter finished Checking for updates... 00:00:29.5201057
There is no update applicable to this machine