答案1
我发现了一些手动步骤这里和这里,并尝试使用下面这个肮脏又不那么快的脚本来自动化它们(基于这)。但是它需要半个多小时才能运行,因此我将这个问题保留下来,希望有人能提出更方便的解决方案。
Dim msg
msg = "Searching for and hiding six Windows Updates related to Windows 10 nagging." & vbCrLf
msg = msg & "Be patient; this may take a LONG time during which nothing appears to happen."
msg = msg & " You can tell the script is still running by using Task Manager and looking for wscript.exe"
Wscript.echo msg
Dim hideupdates(5)
hideupdates(0) = "KB3035583"
hideupdates(1) = "KB2952664"
hideupdates(2) = "KB2976978"
hideupdates(3) = "KB3021917"
hideupdates(4) = "KB3044374"
hideupdates(5) = "KB2990214"
Dim status(5)
For i = 0 to UBound(status)
status(i) = "notfound"
Next
set updateSession = createObject("Microsoft.Update.Session")
set updateSearcher = updateSession.CreateupdateSearcher()
Set searchResult = updateSearcher.Search("IsInstalled=0 and Type='Software'")
dim results
Set results = searchResult.Updates
For i = 0 To results.Count-1
set update = results.Item(i)
For j = LBound(hideupdates) To UBound(hideupdates)
if instr(1, update.Title, hideupdates(j), vbTextCompare) > 0 then
if update.IsHidden then
status(j) = "alreadyhidden"
else
update.IsHidden = True
status(j) = "hidden"
end if
end if
Next
Next
Dim alreadyhidden
Dim hidden
Dim notfound
for i = 0 to UBound(status)
Select Case status(i)
Case "alreadyhidden"
alreadyhidden = alreadyhidden & hideupdates(i) & vbCrLf
Case "notfound"
notfound = notfound & hideupdates(i) & vbCrLf
Case "hidden"
hidden = hidden & hideupdates(i) & vbCrLf
End Select
next
msg = "Hid these Windows 10 related updates:" & vbCrLf
msg = msg & hidden & vbCrLf
msg = msg & "These ones were already hidden:" & vbCrLf
msg = msg & alreadyhidden & vbCrLf
msg = msg & "These ones were not found on this machine:" & vbCrLf
msg = msg & notfound
Wscript.echo msg
答案2
引述 rkager“什么是最快捷、最简单的方法,可以从一开始就防止这些不必要的“更新”被应用?”如果你正在进行全新安装
“在 Windows 更新设置中取消选中推荐更新(可选)。”
上面写着“像我收到重要更新一样给我推荐的更新”。之后,您可以单独检查您想要安装的推荐更新(如果有)。我不建议安装 MS 给出的每个推荐更新。最近它造成的混乱多于好处。