Ich möchte die automatischen Windows-Updates aktiviert lassen, aber die Installation eines bestimmten Patches blockieren, der Probleme verursacht.
Ist das möglich? Weiß jemand, wie man das macht?
quelle
Ich möchte die automatischen Windows-Updates aktiviert lassen, aber die Installation eines bestimmten Patches blockieren, der Probleme verursacht.
Ist das möglich? Weiß jemand, wie man das macht?
In einem größeren Netzwerk möchten Sie WSUS verwenden, wie DanBig hervorhob. Wenn Sie jedoch einen einzelnen Hotfix blockieren möchten, können Sie dies mit der Hotfix-ID mithilfe dieses Skripts tun:
If Wscript.Arguments.Count = 0 Then
WScript.Echo "Syntax: HideWindowsUpdate.vbs [Hotfix Article ID]" & vbCRLF & _
"Examples:" & vbCRLF & _
" - Hide KB940157: HideWindowsUpdate.vbs 940157"
WScript.Quit 1
End If
Dim hotfixId
hotfixId = WScript.Arguments(0)
Dim updateSession, updateSearcher
Set updateSession = CreateObject("Microsoft.Update.Session")
Set updateSearcher = updateSession.CreateUpdateSearcher()
Wscript.Stdout.Write "Searching for pending updates..."
Dim searchResult
Set searchResult = updateSearcher.Search("IsInstalled=0")
Dim update, kbArticleId, index, index2
WScript.Echo CStr(searchResult.Updates.Count) & " found."
For index = 0 To searchResult.Updates.Count - 1
Set update = searchResult.Updates.Item(index)
For index2 = 0 To update.KBArticleIDs.Count - 1
kbArticleId = update.KBArticleIDs(index2)
If kbArticleId = hotfixId Then
WScript.Echo "Hiding update: " & update.Title
update.IsHidden = True
End If
Next
Next
Wenn das Update nicht mit einem KB-Artikel verknüpft ist, müssen Sie die Update-ID mithilfe dieses Skripts ermitteln:
Dim updateSession, updateSearcher
Set updateSession = CreateObject("Microsoft.Update.Session")
Set updateSearcher = updateSession.CreateUpdateSearcher()
Wscript.Stdout.Write "Searching for pending updates..."
Dim searchResult
Set searchResult = updateSearcher.Search("IsInstalled=0")
Dim update, kbArticleId, index, index2
WScript.Echo CStr(searchResult.Updates.Count) & " found."
For index = 0 To searchResult.Updates.Count - 1
Set update = searchResult.Updates.Item(index)
WScript.Echo update.Identity.UpdateID & ": " & update.Title
Next
Und blockieren Sie es mit diesem Skript:
If Wscript.Arguments.Count = 0 Then
WScript.Echo "Syntax: HideWindowsUpdateById.vbs [Update ID]" & vbCRLF & _
"Examples:" & vbCRLF & _
" - Hide KB940157: HideWindowsUpdateById.vbs 2ba85467-deaf-44a1-a035-697742efab0f"
WScript.Quit 1
End If
Dim updateId
updateId = WScript.Arguments(0)
Dim updateSession, updateSearcher
Set updateSession = CreateObject("Microsoft.Update.Session")
Set updateSearcher = updateSession.CreateUpdateSearcher()
Wscript.Stdout.Write "Searching for pending updates..."
Dim searchResult
Set searchResult = updateSearcher.Search("UpdateID = '" & updateId & "'")
Dim update, index
WScript.Echo CStr(searchResult.Updates.Count) & " found."
For index = 0 To searchResult.Updates.Count - 1
Set update = searchResult.Updates.Item(index)
WScript.Echo "Hiding update: " & update.Title
update.IsHidden = True
Next
Sie können alle oben genannten Schritte auch in Windows PowerShell ausführen. Ich habe die Skripte ursprünglich in VBScript erstellt, weil ich vor der Installation von PoSH mit dem Windows Update-Agenten interagieren wollte. Die Windows Update-API ist auf MSDN dokumentiert .
Wenn Sie WSUS verwenden , können Sie ein Update ablehnen. Ich weiß nicht, wie ich es anders machen könnte.
quelle
Klicken Sie in der Windows Update-Anwendung (unter Vista und 7) mit der rechten Maustaste auf das Update, das Sie blockieren möchten, und wählen Sie "Update ausblenden". Dadurch wird es aus der Liste entfernt und die Installation während der automatischen Installation blockiert. Sie können das versteckte Update jederzeit in der Zukunft "wiederherstellen", damit es wieder in der Liste angezeigt wird.
Auf der älteren Windows Update-Website (für Windows XP) gibt es einen ähnlichen Vorgang, bei dem Sie ein Update ausblenden können. Die Option dazu befindet sich jedoch an einem anderen Ort.
quelle
Ich empfehle eine einzeilige Änderung der Colin-Skripte. Ich weiß nicht genau warum, aber ich sehe, dass ich die falsche KB-Nummer sehe, es sei denn, ich verwende eine Suche wie:
Wenn ich nur IsInstalled = 0 spezifiziere, erhalte ich manchmal eine andere KB-Nummer.
Beispiel: KB2956078 kann auf meinem Computer installiert werden. Wenn ich beide Bedingungen für Search () spezifiziere, sehe ich:
Mit nur der Bedingung "IsInstalled = 0" sehe ich jedoch:
Wenn ich mir Windows Update anschaue, sehe ich, dass KB2956078 das Update ist, das angezeigt wird. Außerdem setze ich dieses Update auf "Ausgeblendet" und das funktioniert ordnungsgemäß und verbirgt das Update mit der von mir vorgeschlagenen Änderung.
Kleines Update: Ich habe möglicherweise herausgefunden, warum dies geschieht. Ich habe bestimmte Outlook-Updates unterdrückt, die die Outlook-Skripterstellung beschädigen. Die beiden fraglichen Updates haben sehr ähnliche Titel und es sieht so aus, als würde Windows Update verwirrt.
quelle