Vie secrète de Windows : Le shuffle de pack service

Comment pouvez-vous être certain que vous recevez tous les bons correctifs et mises à jour avec un nouveau service pack ? Rassurez-vous, ils sont là.

Raymond Chen

Vous êtes-vous déjà demandé ce qui se passe à vos correctifs et mises à jour lorsque vous mettez à niveau vers un service pack ? Ne vous inquiétez pas, ils sont tout là-dedans. Chaque service pack de Windows intègre toutes les mises à jour disponibles à la fois que le service pack est commercialisé. Mais qu'en est-il des correctifs de sécurité publiés après le service pack ?

Supposons que vous avez déployé la version originale de Windows 7 et vous avez été tenue sur le déploiement de Windows 7 SP1 jusqu'à ce que vous avez fini d'évaluer contre les applications métier de votre entreprise. Pendant ce temps, Microsoft publie un correctif pour résoudre les vulnérabilités de sécurité à la fois la version originale de Windows 7 et le premier service pack. Vous déployez ce correctif sur tous vos ordinateurs. Vous déterminez plus tard que Windows 7 SP1 n'affecte pas défavorablement le flux de travail de votre entreprise. Déploiement du service pack sur tous vos systèmes accidentellement réintroduira la faille de sécurité ?

Heureusement, la réponse est « non ». Correctifs de sécurité publiés lorsque plusieurs versions de Windows sont soutenues sont distribués dans un mécanisme appelé un « dual-mode update package. » Vous pouvez en savoir plus sur cette méthode de distribution en Base de connaissances article 328848.

Supposons que la version d'origine de Windows 7 et Windows 7 SP1 sont prises en charge. Deux taches consistera en fait un patch pour Windows 7 : un pour la version originale de Windows 7 et l'autre pour Windows 7 SP1. Le correctif approprié à la version actuellement installée de Windows 7 est appliqué au système. Si le système exécute la version originale de Windows 7, cependant, il y a une étape supplémentaire. La version de Windows 7 SP1 du patch est enregistrée pour un jour de pluie.

Lorsque vous installez Windows 7 SP1, le programme d'installation service pack vérifie tous les correctifs Windows 7 SP1 enregistrées. S'il y en a, il les applique dans le cadre de la mise à niveau. Par conséquent, une fois que vous installez un correctif de sécurité, il va toujours être là, même si vous mettez à niveau vers le service pack suivant.

Enregistrer les proches

Vous vous demandez peut-être pourquoi il n'est pas un problème avec la mise à niveau vers un hypothétique Windows 7 SP2. Parce que le correctif initial ne comprend pas une version pour le deuxième service pack, le programme d'installation de Windows 7 SP2 ne trouverez pas un patch enregistré à appliquer dans le cadre de la mise à niveau.

C'est OK, parce que tous les service packs intègrent toutes les mises à jour à la fois que les service packs sont faites. Par conséquent, le problème que le package de mise à jour devrait fixer est déjà fixé dans le SP2 de Windows 7 en raison du fait que le deuxième service pack est sorti après le package de mise à jour. La technique du paquet double mode mise à jour n'est nécessaire pour les correctifs qui sortent après un service pack.

Il y a un autre type de mise à jour appelée le cumul. Il s'agit d'une mise à jour qui combine simplement un tas d'autres mises à jour dans un package unique pour plus de commodité. Vous pouvez considérer cela comme un mini-service pack. A l'extrême opposé, vous pouvez considérer Windows 8 comme un méga-service pack pour Windows 7 : En plus de toutes les nouvelles fonctionnalités de Windows 8, il comprend également toutes les mises à jour de Windows 7.

Cette complexité met en évidence une erreur fréquente lors de l'écriture de code qui essaie de détecter si oui ou non une mise à jour a été appliquée. Certaines personnes tentent d'énumérer installés toutes les mises à jour, mais cette technique ne trouvera pas la mise à jour une fois que l'utilisateur a installé un correctif cumulatif ou mis à niveau vers le Service Pack 2 de Windows 7 ou Windows 8. Ainsi, le code considère que la machine n'a pas la mise à jour, même si elle le fait. C'est juste que la mise à jour n'existe plus comme entité indépendante.

Même dans le cas où le système est équipé de Windows 7 SP1 et n'a pas installé les packages de correctifs, une recherche pour la mise à jour peut générer un faux positif. Par exemple, considérez une mise à jour qui installe la version 1.3 d'une DLL. Un installateur rogue remplace ensuite la DLL version 1.2. La mise à jour a été installée, mais également invalidée par ce qui est arrivé plus tard.

La bonne question à poser est par conséquent pas, "Quelles mises à jour sont installés?" mais plutôt"Quelles mises à jour à installer?" Vous pouvez utiliser le Windows Update Agent pour cela.

L'Agent Windows Update est largement documenté sur msdn.com. L'exemple de script pour la recherche, téléchargement et installation des mises à jour montre comment rechercher toutes les mises à jour disponibles qui n'ont pas encore été appliquées. Puis il télécharge et les installe. Si vous êtes intéressé par une mise à jour particulière, vous pouvez utiliser la technique illustrée dans le script de recherche, téléchargement et installation des mises à jour spécifiques.

Le monde de Windows servicing est en réalité beaucoup plus compliqué que la séquence de pack service linéaire décrite ici. Il y a la service pack séquence, la séquence Quick Fix Engineering (ou QFE) et celle General Distribution Release (ou RDA), dont chacun porte sur une exigence de publication différente. Par conséquent, paquets multimodes peuvent exister avec de nombreuses variations. Il pourrait y en avoir un pour chacune des séquences des libération, mais c'est une histoire pour une autre fois.

Raymond Chen

Raymond Chen *Site Web, la vieille nouvelle chose, et identique intitulée livre (Addison-Wesley, 2007) traitent l'histoire Windows, Win32 programmation et négatifs dans les chemins.

Merci à Mark Phaedrus pour son assistance technique par inadvertance dans la rédaction de cet article.*

Contenu connexe