Correctif de mise à jour Windows spécifique au bloc

J'aimerais laisser les mises à jour automatiques de Windows activées, mais bloquer un correctif spécifique de l'installation qui nous cause des problèmes.

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

Dans un réseau plus large, vous voudrez 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 find 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 button droit de la souris sur la mise à jour que vous voulez bloquer et select "Masquer la mise à jour". Cela l'éliminera de la list 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 list.

Il existe un process 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.