Confidencial de Windows: El shuffle de paquete de servicio

¿Cómo puede usted estar seguro que está recibiendo todos los parches de la derecha y se actualiza con un nuevo service pack? La certeza — están allí.

Raymond Chen

¿Te has preguntado ¿qué pasa con los parches y actualizaciones al actualizar a un service pack? No se preocupe: todos están allí. Cada service pack de Windows incorpora todas las actualizaciones disponibles en el momento que se lanzó el service pack. Pero ¿qué pasa con las revisiones de seguridad liberado tras el service pack?

Supongamos que se ha implementado la versión original de Windows 7 y que has sido sosteniendo sobre la implementación de Windows 7 SP1 hasta que haya terminado de evaluar contra aplicaciones de línea de negocio de su empresa. Mientras tanto, Microsoft publica un parche de vulnerabilidades de seguridad de la dirección en la versión original de Windows 7 y el primer service pack. Implementar este parche a todos los equipos. Más tarde usted determinar que Windows 7 SP1 no afectar el flujo de trabajo de su empresa. ¿Será implementar el service pack en todos sus sistemas accidentalmente reintroducir la vulnerabilidad de la seguridad?

Afortunadamente, la respuesta es "no". Parches de seguridad cuando se admiten varias versiones de Windows se distribuyen en un mecanismo conocido como un "paquete de actualización de modo dual". Puedes leer más acerca de este método de distribución en artículo de Knowledge Base 328848.

Supongamos que tanto la versión original de Windows 7 y Windows 7 SP1 son compatibles. Un parche para Windows 7 realmente constará de dos parches: uno para la versión original de Windows 7 y otro para Windows 7 SP1. El parche correspondiente a la versión instalada de Windows 7 se aplica al sistema. Si el sistema está ejecutando la versión original de Windows 7, sin embargo, hay un paso adicional. La versión de Windows 7 SP1 del parche se guarda para un día lluvioso.

Al instalar Windows 7 SP1, el instalador del service pack comprueba los parches de Windows 7 SP1 guardados. Si hay alguna, se aplicación como parte de la actualización. Como resultado, una vez que instale un parche de seguridad, siempre va a estar ahí, incluso si actualiza al siguiente service pack.

Cerrar guardar

Usted podría preguntarse por qué no hay un problema con la actualización a un hipotético Windows 7 Service Pack 2. Porque el parche original no incluía una versión para segundo service pack, el instalador de Windows 7 Service Pack 2 no encontrará un parche guardado para aplicar como parte de la actualización.

Eso está bien, porque todos los service packs incorporan todas las actualizaciones lanzadas en el momento que se hacen los service packs. En consecuencia, el problema sería necesario fijar el paquete de actualización ya está arreglado en el SP2 de Windows 7 por el hecho de que salió el segundo service pack después el paquete de actualización. La técnica del paquete de actualización de modo dual es necesaria sólo para parches que salen después de un service pack.

Existe otro tipo de actualización conocido como el paquete acumulativo de actualizaciones. Se trata de una actualización que simplemente combina un montón de otras actualizaciones en un solo paquete para mayor comodidad. Usted puede pensar que un paquete de mini-service. En el extremo opuesto, se puede considerar de Windows 8 como un mega-service pack para Windows 7: Además de todas las nuevas características de Windows 8, también incluye todas las actualizaciones de Windows 7.

Esta complejidad destaca un error común cuando se escribe código que intenta detectar o no se ha aplicado una actualización determinada. Algunas personas intentan enumerar instalados todas las actualizaciones, pero esta técnica no encontrará la actualización una vez que el usuario ha instalado un paquete acumulativo de actualizaciones o actualizar a Windows 7 Service Pack 2 o Windows 8. Como resultado, el código considera que la máquina no tiene la actualización, a pesar de que lo hace. Es sólo que la actualización ya no existe como una entidad independiente.

Incluso en caso de que el sistema está ejecutando Windows 7 SP1 y no ha instalado los paquetes de rollup, una búsqueda de la actualización podría generar un falso positivo. Por ejemplo, considere una actualización que instala la versión 1.3 de una DLL. Un instalador de rogue después sobrescribe el archivo DLL con la versión 1.2. La actualización fue instalada, pero también invalidada por lo que sucedió después.

La pregunta correcta es, por tanto, no, "qué actualizaciones se instalan?" pero más bien, "qué actualizaciones necesita instalarse?" Puede utilizar el Windows Update Agent para eso.

El agente de actualización de Windows está ampliamente documentado en msdn.com. La secuencia de comandos de ejemplo para la búsqueda, descarga e instala actualizaciones muestra cómo encontrar todas las actualizaciones disponibles que aún no se han aplicado. A continuación, descarga y los instala. Si usted está interesado en una actualización determinada, puede utilizar la técnica demostrada en la secuencia de comandos de búsqueda, descarga e instala actualizaciones específicas.

El mundo del servicio de Windows realmente es mucho más complicado que la secuencia de paquete de servicio lineal descrita aquí. Es la secuencia de paquete de servicio, la secuencia Quick Fix Engineering (o QFE) y la secuencia de liberación de distribución General (o RDA), cada uno de los cuales aborda un requisito diferente versión. Como resultado, pueden existir multimodos paquetes con muchas variantes. Puede haber uno para cubrir cada una de las secuencias de lanzamiento, pero eso es historia para otro momento.

Raymond Chen

Raymond Chen *Web site, el viejo nuevo lo y libro idénticamente titulado (Addison-Wesley, 2007) con historia de Windows, Win32 aniversarios de programación y negativos.

Gracias a Mark Phaedrus su involuntaria asistencia técnica en escribir este artículo.*

Contenido relacionado