Вопрос: Как скрыть обновления в Windows Updates без GUI


Если вы не хотите обновлять определенное обновление Windows, вы можете сделать это, выполнив следующие шаги в Windows 7 ниже:

  1. Открыть обновления для Windows
  2. Нажмите «Просмотреть обновления»
  3. Щелкните правой кнопкой мыши элемент, который вы хотите скрыть.
  4. Нажмите «Скрыть»

Но я хочу знать, как это сделать, не используя графический интерфейс. Поэтому я могу применить к нескольким компьютерам. Как Windows 7 сохраняет информацию о скрытом обновлении? это реестр? Можем ли мы фактически заменить эти 4 шага на один простой файл реестра? Или какой-то сценарий Windows?


2
2018-02-28 04:19


Источник


почему вы не приняли ответ? - magicandre1981
Это не мое намерение. Я вернул его. Это тот ответ, который мне нужен. - Jason Chiang


Ответы:


Пользователь отправил VBscript (HideKBs_BingDesktop.vbs) на msfn.org, который скрывает обновления,

' Maxpsoft May 30, 2013, 9:34:15 PM
' 06/18/2013 Add extra for Bing Desktop v1.3
' 06/28/2013 Updated to continue searching as long as it is finding something otherwise Quit
'
' Original Mike.Moore Dec 17, 2012 on answers.microsoft but when ran it Hide everything so no good.
' Link to script: http://www.msfn.org/board/topic/163162-hide-bing-desktop-and-other-windows-updates/
' You may freely use this script as long as you copy it complete and it remains the same except for adjusting hideupdates.
' If I need to change something then let me know so all may benefit.

Dim WSHShell, StartTime, ElapsedTime, strUpdateName, strAllHidden
Dim Checkagain 'Find more keep going otherwise Quit

Dim hideupdates(3) 'TO ADD 1 EDIT THE (3) AND ADD another hideupdates(#)

hideupdates(0) = "KB2592687" 'Remote Desktop Protocol 8.0
hideupdates(1) = "KB2709981" 'Windows Media Player 12
hideupdates(2) = "Bing Desktop" 'With this we get all versions
hideupdates(3) = "Silverlight"

Set WSHShell = CreateObject("WScript.Shell")

StartTime = Timer 'Start the Timer

Set updateSession = CreateObject("Microsoft.Update.Session")
updateSession.ClientApplicationID = "MSDN Sample Script"
Set updateSearcher = updateSession.CreateUpdateSearcher()
Set searchResult = updateSearcher.Search("IsInstalled=0 and Type='Software' and IsHidden=0")

Checkagain = "True"

For K = 0 To 10 'Bing Desktop has 4, Silverlight has 5
If Checkagain = "True" Then
Checkagain = "False"
CheckUpdates
ParseUpdates
End if
Next

ElapsedTime = Timer - StartTime
strTitle = "Bing Desktop and Windows Updates Hidden."
strText = strAllHidden
strText = strText & vbCrLf & ""
strText = strText & vbCrLf & "Total Time " & ElapsedTime
intType = vbOkOnly

'Silent just comment these 2 lines with a ' and it will run and quit
Set objWshShell = WScript.CreateObject("WScript.Shell")
intResult = objWshShell.Popup(strText, ,strTitle, intType)

'Open Windows Update after remove the comment '
'WshShell.Run "%windir%\system32\control.exe /name Microsoft.WindowsUpdate"

Set objWshShell = nothing
Set WSHShell = Nothing
WScript.Quit


Function ParseUpdates 'cycle through updates
For I = 0 To searchResult.Updates.Count-1
Set update = searchResult.Updates.Item(I)
strUpdateName = update.Title
'WScript.Echo I + 1 & "> " & update.Title
For j = 0 To UBound(hideupdates)
if instr(1, strUpdateName, hideupdates(j), vbTextCompare) = 0 then
Else
strAllHidden = strAllHidden _
& vbcrlf & update.Title
update.IsHidden = True'
Checkagain = "True"
end if
Next
Next
End Function

Function CheckUpdates 'check for new updates cause Bing Desktop has 3
Set updateSession = CreateObject("Microsoft.Update.Session")
updateSession.ClientApplicationID = "MSDN Sample Script"
Set updateSearcher = updateSession.CreateUpdateSearcher()
Set searchResult = _
updateSearcher.Search("IsInstalled=0 and Type='Software' and IsHidden=0")
End Function

Отредактируйте массив hideupdates, как указано в скрипте, и добавьте номер KB, который вы хотите скрыть.


6
2018-02-28 05:12



Хотя, я понятия не имею, почему «Set objWshShell = nothing» & «Set WSHShell = Nothing» вызывает ошибку в моей системе Windows 7 x64, но после того, как я прокомментировал эти две строки, он работал как шарм. Спасибо за этот блестящий ответ! - Jason Chiang
hi @ magicandre1981 Я не знаю, как «принять» ответ до сих пор. Спасибо, в любом случае. - Jason Chiang