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

Posted

技术标签:

【中文标题】检查是不是有新的 Windows 版本可用并以编程方式安装【英文标题】:Check if a new Windows version is available and install programmatically检查是否有新的 Windows 版本可用并以编程方式安装 【发布时间】:2021-05-03 10:59:45 【问题描述】:

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

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

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

【问题讨论】:

希望我能分享您对定期更新 Windows 的感受。我还有 1903 版! 你是一个类似的问题 qith 在 c# 中的响应 ***.com/a/8231322/3955573>[here]</a> @CadotMichael “Windows Update Agent API”不显示功能更新,只显示常规更新。 【参考方案1】:

你看过 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

【讨论】:

问题是关于 Windows 功能更新,例如 1909 或 20h2 不是关于小更新!

以上是关于检查是不是有新的 Windows 版本可用并以编程方式安装的主要内容,如果未能解决你的问题,请参考以下文章

如何创建一个循环来检查每次迭代时是不是有新的 IBAction 输入?

哪些版本的 Windows 支持/需要哪些 CPU 多媒体扩展? (如何检查 SSE 或 AVX 是不是完全可用?)

ARCGIS出现“你的计算机不是一个可用的许可服器,或者运行的许可管理器是早期的版本“

如何在运行应用程序的系统上检查所需的 Windows API 功能是不是可用?

使用objective-c检查iOS更新是不是可用?

如何检查 Windows 版本是不是为正版?