今天重启电脑后,我的电脑正在全屏安装 Windows 更新,或者至少它说是这样的。
后来,当我使用 Windows 时,我在设置的 Windows 更新屏幕中查看“查看更新历史记录”,我看到一个日期为今天的更新安装失败。关闭窗口并再次打开后,这个失败的更新就消失了。
因此,如果当我重新启动计算机时 Windows 更新运行并且显示“Windows 更新正在安装,请不要关闭计算机”,那么在哪里可以看到此 Windows 更新?
更新:另外,我刚刚安装了与前面提到的不同的 Windows 更新,它没有出现在我的更新历史记录中,那么它在哪里?
答案1
你可以尝试一下这个,这是一个 PowerShell 脚本,首先,打开 PowerShell:
Win+ R>>类型PowerShell
>> Ctrl+ Shift+Enter
然后,进入 PowerShell 后,粘贴以下代码行:
(Get-WindowsPackage -Online | Where {$_.PackageState -match "Staged|InstallPending"}).PackageName
它将显示所有待处理的 Windows 更新包的包名称。
您可以尝试以下操作:
Get-WindowsPackage -Online
获取计算机中存在的所有 Windows 更新包;
这:
Get-WindowsPackage -Online | Where {$_.PackageState -match "Staged|InstallPending"}
获取有关待处理更新的所有可用信息。
然后,您可以按安装日期进一步缩小列表范围:
Get-WindowsPackage -Online | Where {$_.PackageState -match "Staged|InstallPending"} | Where {$_.InstallTime.ToString("yyyy-MM-dd") -eq "2021-01-16"}
添加的标准将仅返回在 yyyy-MM-dd 表达式等于给定日期字符串的日期安装的软件包。我给出的示例是今天的日期(当前日期),将日期更改为您的计算机尝试安装更新并失败的日期。
您可以通过以下方式摆脱它:
$packagename=(Get-WindowsPackage -Online | Where {$_.PackageState -match "Staged|InstallPending"} | Where {$_.InstallTime.ToString("yyyy-MM-dd") -eq "2021-01-16"}).packagename
dism /Online /Remove-Package /PackageName:$packagename /norestart
然后您需要运行以下命令来阻止 Windows 再次尝试安装此更新:
net stop wuauserv
remove-item "$env:windir\SoftwareDistribution\Download" -force -recurse
net start wuauserv
dism /online /cleanup-image /revertpendingactions
dism /online /cleanup-image /startcomponentcleanup
我希望您发现答案有用;谨致问候。
Get-WindowsPackage 是 dism 提供的 cmdlet,基本上Get-WindowsPackage -Online
与 执行相同的操作dism /online /get-packages
,不同之处在于 Get-WindowsPackage 是一个 cmdlet,它返回可用于其他 cmdlet 的结构化结果。
如果Get-WindowsPackage -Online
没有列出所有已安装的更新,那么我认为没有第三方软件可以列出所有已安装的更新,因为它们都是基于 dism。
如果您没有看到任何待处理的更新,那么一定是出了问题,您的更新安装失败,因此它应该是待处理的安装。
如果所有建议都无法解决您的这一特定问题,那么我可以再给您一个建议:作为最后的手段,您必须重新安装 Windows。Windows 10 .iso 文件现在可以免费下载,您可以下载并执行修复安装,您可以保留所有文件,您的系统将以这种方式修复;但请注意,它无法修复损坏的用户配置文件,如果用户配置文件已损坏,您必须执行全新安装并创建新的配置文件。