如何用Windows PowerShell自动安装Win10/11可选累积更新与驱动?
解决PSWindowsUpdate无法自动安装Windows可选更新的问题
核心问题分析
你的脚本未能触发可选更新安装,主要原因是:
- 默认的
Get-WindowsUpdate/Install-WindowsUpdate命令不会自动包含可选更新(包括可选驱动、可选功能更新),需要明确指定参数覆盖默认行为。 - 两个
Install-WindowsUpdate命令输出到同一个日志文件,会导致后一个命令覆盖前一个的日志内容。
修正后的脚本
# 确保以管理员身份运行 #Requires -RunAsAdministrator # 安装NuGet和PSWindowsUpdate模块 Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force Install-Module PSWindowsUpdate -Force -AllowClobber # 注册Microsoft Update服务(确保可选更新源可用) Add-WUServiceManager -ServiceID "7971f918-a847-4430-9279-4a52d1efe18d" -Confirm:$false | Out-Null # 刷新更新服务列表,确保注册生效 Get-WUServiceManager | Out-Null # 安装所有基础Windows更新(含推荐更新) Get-WindowsUpdate -MicrosoftUpdate -AcceptAll -Install -IgnoreReboot | Out-File "C:\Users\Public\Downloads\Base_Updates_$(Get-Date -f dd-MM-yyyy).log" # 安装所有可选驱动更新 Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -UpdateType Driver -Category "Optional" -ForceDownload -ForceInstall -IgnoreReboot -ErrorAction SilentlyContinue | Out-File "C:\Users\Public\Downloads\Optional_Drivers_$(Get-Date -f dd-MM-yyyy).log" # 安装所有可选软件/功能更新 Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -UpdateType Software -Category "Optional" -ForceDownload -ForceInstall -IgnoreReboot -ErrorAction SilentlyContinue | Out-File "C:\Users\Public\Downloads\Optional_Software_$(Get-Date -f dd-MM-yyyy).log"
关键修改点说明
- 添加
-MicrosoftUpdate参数:可选更新仅在Microsoft Update服务中提供,必须指定此参数才能检测到它们。 - 新增
-Category "Optional"参数:明确限定处理可选分类下的更新,避免重复安装已完成的基础更新。 - 拆分日志文件:将基础更新、可选驱动、可选软件更新的日志分别保存,避免覆盖,便于后续排查问题。
- 添加
-AllowClobber到Install-Module:解决模块安装时可能出现的命令冲突问题。 - 强制刷新服务列表:确保Microsoft Update服务注册后立即生效,避免出现检测不到可选更新的情况。
额外注意事项
- 脚本必须以管理员身份运行,否则无法修改Windows更新设置和执行安装操作。
- 部分可选更新可能需要重启系统生效,若需自动重启,可移除
-IgnoreReboot参数,或添加-AutoReboot参数。 - 若仍无法检测到可选更新,可先手动在Windows设置中检查一次可选更新,再重新运行脚本,确保更新元数据已同步。
内容的提问来源于stack exchange,提问作者TheTolTechnician
相关产品推荐
相关产品推荐

