Correction de mise à jour Windows spécifique au bloc

Je voudrais laisser les mises à jour automatiques de Windows activées, mais bloquer un correctif spécifique d'être installé qui nous cause des problèmes.

Est-ce possible? Quelqu'un sait comment faire cela?

Dans un réseau plus large, vous souhaitez utiliser WSUS comme indiqué par DanBig. Toutefois, si vous souhaitez bloquer un correctif personnel individuel, vous pouvez le faire avec l'ID de correctif à l'aide de ce script:

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 

Si la mise à jour n'est pas liée à un article KB, vous devriez trouver l'ID de mise à jour à l'aide de ce script:

 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 

Et bloquez-le en utilisant ce script:

 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 

Vous pouvez également faire tout ce qui précède dans Windows PowerShell. J'ai créé les scripts dans VBScript à l'origine parce que je voulais interagir avec l'agent de mise à jour Windows avant que PoSH ne soit installé. L'API de mise à jour Windows est documentée sur MSDN .

Si vous utilisez WSUS , vous pouvez refuser une mise à jour. Je ne connais pas un moyen de le faire autrement.

Dans l'application Windows Update (sur Vista et 7), cliquez avec le bouton droit de la souris sur la mise à jour que vous souhaitez bloquer et sélectionnez "Masquer la mise à jour". Cela l'éliminera de la liste et bloquera l'installation pendant l'installation automatique. Vous pouvez "restaurer" la mise à jour cachée à tout moment dans le futur afin qu'il apparaisse de nouveau sur la liste.

Il existe un processus similaire sur le site Web Windows Update de style ancien (pour Windows XP) où vous pouvez cacher une mise à jour. L'option de le faire est cependant à un autre endroit.