Skip to main content

Administración de correcciones de compatibilidad (shim) en una empresa

Al abordar problemas de compatibilidad de aplicaciones durante la preparación para una implementación de Windows, entre las herramientas disponibles más flexibles y eficaces se encuentran las correcciones de compatibilidad de aplicaciones, más conocidas como correcciones de compatibilidad. Sin embargo, muchas organizaciones no aprovechan las correcciones de compatibilidad tanto como podrían, ya sea porque no entienden la tecnología subyacente o porque no tienen un proceso habilitado para administrarlas durante el período de vigencia de las aplicaciones que usan para corregirlas.

Este artículo comparte los procedimientos recomendados para abordar los problemas de compatibilidad de la aplicación mediante correcciones de compatibilidad. Explica cómo funcionan las correcciones de compatibilidad, cuando considere aplicarlas y cómo administrarlas cuando las aplica.

En este artículo:


Comprensión de las correcciones de compatibilidad (shim)

Cómo funcionan las correcciones de compatibilidad (shim)

La compatibilidad de las aplicaciones en los sistemas operativos de Microsoft Windows representan, junto con el rendimiento, la confiabilidad y la capacidad de administración, unos de los pilares fundamentales de su desarrollo. Para reducir los costos de implementación y acelerar la adopción, Microsoft invierte en soluciones técnicas avanzadas para asegurar una amplia compatibilidad del software existente, lo que hace que la compatibilidad forme parte del proceso de ingeniería y lanzamiento.

La infraestructura de compatibilidad de aplicaciones de Microsoft Windows (infraestructura de correcciones de compatibilidad) es una de dichas soluciones técnicas eficaces. A medida que el sistema operativo de Windows evoluciona (cuyos cambios tienen el propósito de admitir nueva tecnología, incorporar corrección de errores y/o implementar una modificación en la estrategia), los cambios en la implementación de algunas funciones de la interfaz de programación de aplicaciones (API) pueden afectar a las aplicaciones que las usan. Ya que la naturaleza de las dependencias de ciertas implementaciones varía mucho, puede que no sea posible crear una sola implementación que funcione para todo el software existente y que al mismo tiempo proporcione el nuevo comportamiento deseado. Antes podíamos abordar esos problemas de compatibilidad al crear bifurcaciones dentro del código fuente de Windows, pero hacerlo presenta un desafío a largo plazo para la facilidad y la confiabilidad del sistema operativo de Windows. También significa que debemos tener presente el problema antes de comercializar Windows, eso claramente no es el caso del software empresarial. Sin embargo, al usar la infraestructura de correcciones de compatibilidad, puede tener como objetivo una corrección de aplicación específica para una aplicación en especial (y, normalmente, para versiones específicas de esa aplicación), en que estas correcciones estén hospedadas fuera de las funciones principales de Windows y que se mantengan separadas.

La infraestructura de correcciones de compatibilidad implementa una forma de enlace de interfaz de programación de aplicaciones (API). Específicamente, aprovecha la implementación de vinculación dinámica para redirigir las llamadas API desde Windows a un código alternativo, es decir, a las correcciones de compatibilidad. La especificación de portable ejecutable (PE) y de formato de archivo de objeto común (COFF) de Windows incluye varios encabezados y los directorios de datos en este encabezado proporcionan un nivel de direccionamiento indirecto entre la aplicación y el archivo vinculado. Las llamadas a archivos binarios externos se efectúan a través de la tabla de direcciones de importación (IAT). Por consiguiente, una llamada a Windows se ve similar a la Figura 1 en el sistema.

Figura que representa el llamado de una aplicación a Windows a través de la IAT
Figura 1. Aplicación que llama a Windows a través de la IAT

Específicamente, puede modificar la dirección de la función de Windows resuelta en la tabla de importación y reemplazarla por un puntero a una función en el código de correcciones de compatibilidad alternativo, como se muestra en la Figura 2.

Figura que representa una aplicación redirigida a las correcciones de compatibilidad antes de llamar a Windows
Figura 2. Aplicación redirigida a las correcciones de compatibilidad antes de llamar a Windows

Este direccionamiento indirecto se produce para archivos dll vinculados estáticamente cuando se carga la aplicación con correcciones de compatibilidad. Windows también puede realizar correcciones de compatibilidad en archivos dll de vínculos dinámicos al enlazar la API GetProcAddress.

Implicaciones de diseño para la infraestructura de correcciones de compatibilidad (shim)

Es posible que considere que determinadas consecuencias en el diseño de infraestructura de correcciones de compatibilidad son importantes al determinar su estrategia de corrección de compatibilidad.

Primero, como se ve en la Figura 2, el código que se ejecuta dentro de las correcciones de compatibilidad aún se encuentra fuera de Windows. Por consiguiente, Windows somete al código de correcciones de compatibilidad a las mismas restricciones de seguridad que el código de aplicación mismo. De hecho, en Windows, el código de correcciones de compatibilidad parece ser el código de aplicación. Como resultado, no puede usar correcciones de compatibilidad para omitir algún mecanismo de seguridad presente en Windows. Por ejemplo, no hay correcciones de compatibilidad disponibles para omitir las solicitudes de control de cuentas de usuario (UAC), pero la aplicación aún se ejecuta con permisos elevados (una solicitud común de los clientes empresariales que experimentan por primera vez las correcciones de compatibilidad, en un intento por eliminar los derechos de administrador de más usuarios). Puede realizar correcciones de compatibilidad a la aplicación para que no necesite derechos de administrador o puede realizarle correcciones de compatibilidad para que pida a los usuarios que proporcionen los derechos de administrador, pero el usuario tendrá que aprobar la elevación para poder recibir derechos de administración con UAC habilitado. Lo mismo ocurre para el código que usted escribe.

Por lo tanto, al evaluar cuáles son las implicaciones de seguridad de usar correcciones de compatibilidad en la empresa, no está abriendo ninguna vulnerabilidad de seguridad adicional. De hecho, el uso de correcciones de compatibilidad con el propósito de evitar tener que flexibilizar los descriptores de seguridad o hacer que una directiva de seguridad sea más flexible puede ser con frecuencia la opción más segura. Por ejemplo, sin correcciones de compatibilidad, puede mitigar un problema de compatibilidad al flexibilizar las listas de control de acceso (ACL) en un directorio específico, pero esta decisión tiene un efecto en todo el sistema. Con correcciones de compatibilidad, puede redirigir el acceso a archivos a una ubicación por usuario para esa aplicación. Otro ejemplo podría ser que una aplicación compruebe de forma explícita los derechos de administrador. Sin correcciones de compatibilidad, es posible que tenga que otorgar derechos de administrador a la aplicación para aprobar esta comprobación. Sin embargo, si la comprobación no es necesaria, las correcciones de compatibilidad simplemente podrían mentir en cuanto a si el usuario actual tiene derechos de administrador, lo que permite que se apruebe la comprobación sin exponer un área de seguridad adicional.

Debido a que la infraestructura de correcciones de compatibilidad, en esencia, inserta código adicional en la aplicación antes de que llame a Windows, cualquier mitigación en que se usen correcciones de compatibilidad para lograrlo se puede realizar modificando el código de aplicación mismo. Como mínimo, la aplicación podría incluir código similar al que Windows implementa en las correcciones de compatibilidad inmediatamente antes de llamar a las API de Windows. Como resultado, aunque no se usen las correcciones de compatibilidad como corrección final, a menudo pueden ser muy instructivas durante la solución de problemas.

La repercusión sobre el rendimiento de las correcciones de compatibilidad puede variar según lo que estén haciendo. Consideremos algunos ejemplos. Una corrección de compatibilidad que le miente a la versión, que no finge más que ser una versión anterior de Windows, realiza el mismo trabajo (no es muy diferente devolver un valor de 5.1 que devolver un valor de 6.2). Otro ejemplo es la corrección ForceAdminAccess, que se desempeña más rápido que las API que intercepta, como siempre dice "sí, el usuario es un administrador" sin mirar, evita el impacto en el rendimiento de determinar realmente si el usuario es en verdad un administrador. Como ejemplo final, la corrección CorrectFilePaths inspecciona la ruta para determinar si se debe modificar, para que agregue una sobrecarga de rendimiento para la comparación de cadenas de todas las llamadas del sistema de archivos interceptadas, además de la sobrecarga adicional de reemplazar el argumento de cadena cuando se encuentre una coincidencia. Como puede ver, no hay una respuesta fácil, así que es mejor probar cuando tenga requisitos de rendimiento. Sin embargo, la mayoría de los clientes encuentra que las aplicaciones que necesitan correcciones de aplicación para encontrar soluciones son a menudo más antiguas y, como resultado, satisfacen sus criterios de rendimiento en virtud del hecho de que el hardware de hoy es mucho más rápido que el hardware que se ejecutaba hace años, cuando adquirieron el software.

Finalmente, puesto que las correcciones de compatibilidad se ejecutan como código en modo de usuario dentro de un proceso de aplicación de modo de usuario, no puede usarlas para corregir el código en modo kernel. Por ejemplo, no puede usar correcciones de compatibilidad para resolver problemas de compatibilidad con controladores de dispositivos o con otro código en modo kernel. (Por ejemplo, algunos códigos de antivirus, firewall y anti spyware se ejecutan en modo kernel.)

Volver al inicio


Decisión sobre cómo usar las correcciones de compatibilidad (shim) como una mitigación de compatibilidad

Cuando los consultores de Microsoft trabajan con los clientes en cuanto al uso de correcciones de compatibilidad para resolver los problemas de compatibilidad con Windows, empiezan la conversación con información general sobre cómo funcionan las correcciones de compatibilidad y se aseguran de que las personas de los distintos niveles de la organización comprendan cuáles son las implicaciones técnicas de usar correcciones de compatibilidad para las mitigaciones. Sin embargo, la decisión que se tome representa más que una decisión técnica.

Al considerar si las correcciones de compatibilidad son adecuadas, su primera pregunta debe ser si el negocio necesitará un contrato de soporte válido para la aplicación en la versión de Windows que quiere implementar. Si la respuesta es sí, entonces su primera comprobación debe ser si tiene una versión para la que el proveedor pueda prestar soporte técnico. Si tiene una aplicación de este tipo que presenta errores, no necesita usar correcciones de compatibilidad, solo tiene que ponerse en contacto con el proveedor y abrir un caso de soporte para solucionarlo.

Cuando no hay un soporte por parte del proveedor es cuando la mayoría de los clientes considera el uso de correcciones de compatibilidad. Tal vez está siguiendo una versión que no es compatible con la versión de Windows que intenta implementar, la que además presenta errores, e intenta hacerla funcionar otra vez. Tenga en cuenta que al corregir la compatibilidad de una aplicación para que funcione no cambia el estado de soporte, permanecerá sin soporte del proveedor incluso después de lograr que funcione.

Escenarios en que los clientes deciden usar correcciones de compatibilidad (shim)

Los escenarios en que los consultores de Microsoft han ayudado a los clientes en cuanto al uso de correcciones de compatibilidad para mitigar los problemas de las aplicaciones incluyen:

  • Usted adquirió la aplicación de un proveedor que ya no está disponible.
    Varias de las aplicaciones con las que los consultores de Microsoft han trabajado son aplicaciones de proveedores que ya no están disponibles; de modo que, claramente, el soporte técnico ya no es una opción. Es bueno si los consultores pueden mantener la aplicación en funcionamiento, porque eso evita que usted tenga que implementar el software por su cuenta (ya que con frecuencia no existen proveedores que proporcionen una oferta paralela). Sin embargo, puesto que el código fuente no está disponible, las correcciones de compatibilidad son la única opción para una mitigación de compatibilidad. En este caso, recomendamos señalar el riesgo de un uso a largo plazo de la aplicación que ya no cuente con soporte técnico.
  • Usted desarrolló la aplicación internamente.
    Aunque la mayoría de los clientes preferirían corregir todas sus aplicaciones para que sean compatibles de manera nativa, existen algunos escenarios en que el tiempo no lo permite. Es posible que el equipo no pueda corregir todas las aplicaciones antes de la implementación planeada de Windows, de modo que pueden optar por realizar correcciones de compatibilidad en las aplicaciones que se pueden someter a este proceso y modificar el código en aquellas aplicaciones en que las correcciones de compatibilidad no sean suficientes para resolver el problema de compatibilidad. De forma alternativa, es posible que ya esté desarrollando un proyecto a largo plazo para reemplazar la aplicación por una nueva y no desee invertir más en la versión existente y, en lugar de eso, usa correcciones de compatibilidad para resolver los problemas de compatibilidad hasta que la nueva aplicación esté completa. Después, el cliente implementa la versión compatible de manera nativa hasta que la aplicación esté completa, sin tener que retrasar la implementación de Windows.
  • Usted adquirió la aplicación de un proveedor que finalmente lanzará una versión compatible, pero el soporte técnico no es crítico.
    Cuando una aplicación estandarizada no es crítica ni importante para la empresa, algunos clientes usan correcciones de compatibilidad como una solución provisional. En teoría, los usuarios podrían esperar hasta que una versión compatible esté disponible y su ausencia no bloquearía la implementación, pero tener la capacidad de proporcionar a los usuarios una versión con correcciones de compatibilidad y funcional puede llenar ese vacío hasta que una versión compatible esté disponible (o haya presupuesto para adquirirla).

En general, los consultores de Microsoft se han dado cuenta de que una buena comunicación y una buena colaboración entre los propietarios de tecnología (“las correcciones de compatibilidad realmente logran que la aplicación sea suficientemente compatible”) y los propietarios de empresas (“puedo aceptar los términos de soporte técnico para usar una versión con correcciones de compatibilidad de esta aplicación incompatible”) ayuda en el proceso de toma de decisiones.

Decisión en cuanto a qué versiones de una aplicación realizar correcciones de compatibilidad (shim)

Aunque una descripción exhaustiva de la aplicación de correcciones de compatibilidad a una aplicación específica se encuentra fuera del ámbito de estas notas del producto, un aspecto que es importante observar es que las correcciones de compatibilidad se pueden aplicar a versiones específicas de aplicaciones, ya sea “hasta o incluidas” o sólo a una versión específica. Cualquiera de éstas asegura que la siguiente versión de la aplicación que se lance al mercado ya no tendrá aplicadas las correcciones de compatibilidad.

Esto es importante para varios clientes. Ellos desean asegurarse de que pueden corregir la aplicación incompatible para una versión específica, pero aún fomentan que el desarrollador (ya sea un equipo de desarrollo interno o un proveedor) corrija la aplicación para que dejen de aplicarse las correcciones de compatibilidad la próxima vez que se incremente el número de versión.

Soporte técnico para correcciones de compatibilidad (shim)

Aunque las directivas de soporte técnico para las aplicaciones que se hacen compatibles con Windows mediante el uso de correcciones de compatibilidad dependen de cada proveedor de software, otra pregunta frecuente es la siguiente: ¿cómo se realiza soporte técnico al código de las mismas correcciones de compatibilidad?

Las correcciones de compatibilidad se envían como parte de Windows y se actualizan a través de Windows Update. Por consiguiente, se rigen por los mismos términos de soporte técnico que el resto del sistema operativo Windows.

Puede aplicar las correcciones de compatibilidad que crea el equipo de productos de Windows a sus propias aplicaciones, pero Microsoft no proporciona las herramientas necesarias para que usted cree correcciones de compatibilidad personalizadas por su cuenta y aprovechando la infraestructura de correcciones de compatibilidad.

Volver al inicio


Estrategias de administración de bases de datos de correcciones de compatibilidad personalizadas

Si ha decidido usar correcciones de compatibilidad como parte de su estrategia de mitigación de compatibilidad de aplicaciones (para determinadas clasificaciones de aplicaciones), la siguiente pregunta es: ¿qué estrategia se debe emplear para administrar bases de datos de correcciones de compatibilidad personalizadas? La tendencia de los clientes que han trabajado con los consultores de Microsoft ha sido seleccionar uno de los dos enfoques para administrar sus bases de datos de correcciones de compatibilidad personalizadas: implementar correcciones como parte del paquete de aplicación o administrar una base de datos de correcciones de compatibilidad personalizada centralizada.

Sin importar el enfoque que elija su organización, las siguientes son recomendaciones generales para mejorar la administración de las bases de datos de correcciones de compatibilidad personalizadas:

  • Definir estándares respecto a cuándo aplicar las correcciones de compatibilidad.
    También desea definir en qué escenarios es apropiado usar las correcciones de compatibilidad, como se analizó anteriormente, de acuerdo con las necesidades empresariales y tecnológicas específicas de su organización.
  • Definir estándares respecto a las bases de datos de correcciones de compatibilidad personalizadas.
    Es posible que desee definir estándares respecto a cómo asignar correcciones de compatibilidad a aplicaciones específicas. Por ejemplo, es posible que desee asegurarse de que las correcciones de compatibilidad incluyan siempre una comprobación de la versión, de modo que las correcciones de compatibilidad dejen de aplicarse en las versiones posteriores de las aplicaciones.
  • Definir un recurso responsable de responder las preguntas y aplicar los estándares.
    Tener a una persona o a un equipo que sea responsable de estar familiarizado con la tecnología y los estándares respecto al uso de las correcciones de compatibilidad ha sido de forma coherente un factor de predicción de éxito importante. En general, varios clientes aumentan las correcciones de compatibilidad y las mitigaciones en respuesta a una migración de sistema operativo, pero olvidan pronto los detalles cuando termina la migración. Puesto que las bases de datos se administran en el tiempo, deseará asegurarse de que algunos recursos sigan estando familiarizados con estos detalles.
  • Evite sobrestructurar su solución de administración de correcciones de compatibilidad.
    Aunque recomendamos tener una estrategia, varios clientes han estructurado un proceso de revisión e implementación mensual de actualizaciones de correcciones de compatibilidad. Sin embargo, en la práctica los clientes que usan estas correcciones para solucionar problemas de aplicación tienden a encontrarlas casi todas antes de la implementación inicial y, solo ocasionalmente, encuentran correcciones nuevas que les gustaría aplicar después. Tener un proceso sofisticado para la gobernanza en curso y asumir una renovación constante en este espacio da como resultado un esfuerzo en vano.

Implementación de correcciones como parte de un paquete de aplicación

Una estrategia para implementar correcciones de aplicaciones es incluir la base de datos de correcciones de compatibilidad personalizada, que contiene una sola entrada para la aplicación que el paquete está instalando, directamente en el paquete de instalación. Durante las primeras fases de las pruebas de compatibilidad, este enfoque puede parecer el más fácil. Sin embargo, con el tiempo, este enfoque se puede volver más complejo. Los consultores de Microsoft recomiendan evaluar las siguientes consideraciones antes de seleccionar este enfoque.

¿En cuántas aplicaciones terminará realizando correcciones de compatibilidad?
Lo que es necesario tener en cuenta es que las bases de datos de correcciones de compatibilidad personalizadas siguen siendo bases de datos. Por consiguiente, si tuviera 1.000 aplicaciones con correcciones de compatibilidad, tomaría más tiempo abrir y consultar 1.000 bases de datos de una fila diferentes en búsqueda de una correspondencia para una aplicación dada que abrir una sola base de datos y consultar 1.000 filas. Observe que esta penalización en el rendimiento es algo que paga cada vez que se crea un proceso nuevo en Windows. Aunque no es lo suficientemente importante como para que lo noten los usuarios finales y según el entorno (debido a la ley de los grandes números), esto finalmente puede establecer la media de un aumento del consumo de energía en toda la empresa, lo que ya no es algo trivial.

gráfico que muestra el radio del tiempo de búsqueda de una aplicación respecto del número de aplicaciones con corrección de compatibilidad

¿Puede hacer un seguimiento de qué aplicaciones ha implementado en qué equipos?
Es posible que finalmente se dé cuenta de que las correcciones de compatibilidad asignadas para resolver un conjunto de problemas de compatibilidad en una aplicación no estén completas y que más adelante será necesario que implemente una versión actualizada que resuelva los problemas adicionales que su organización descubra en el futuro. Si implementó la base de datos de correcciones de compatibilidad personalizada original como parte del paquete de instalación, será necesario que busque cada cliente que tenga instalada esta aplicación y la base de datos de correcciones de compatibilidad personalizada original para ésta con el propósito de reemplazarla por la nueva versión. Si bien esta estrategia puede ser un buen enfoque si realiza correcciones de compatibilidad solo a algunas aplicaciones, cuando el número de aplicaciones aumente solo en un poco, la mayoría de los clientes finalmente opta por no usarla.

Administración de una base de datos de correcciones de compatibilidad (shim) personalizada centralizada

Una estrategia alternativa que considera la mayoría de los clientes (y la mayoría termina usándola) es administrar una sola base de datos de correcciones de compatibilidad personalizada o varias bases de datos de correcciones de compatibilidad personalizadas para subconjuntos grandes de la organización. Al hacerlo, es más fácil aplicar la directiva y proporcionar actualizaciones coherentes a las mitigaciones de aplicaciones que detecte que son necesarias para admitir la migración a Windows 7. Los consultores de Microsoft recomiendan evaluar las siguientes consideraciones antes de seleccionar este enfoque.

¿Cuento con herramientas de implementación para implementar y actualizar bases de datos de correcciones de compatibilidad personalizadas en todos los equipos de destino?
Si planea administrar una base de datos de correcciones de compatibilidad personalizada centralizada, asegúrese de que las herramientas estén disponibles para implementar y actualizar esta base de datos de correcciones de compatibilidad personalizada en todos los equipos de su organización que lo necesiten. Cuando aplicaciones adicionales tengan aplicadas correcciones de compatibilidad, asegúrese de que los equipos de destino tengan instalada la base de datos de correcciones de compatibilidad actualizada antes de usar la aplicación.

¿Cuento con recursos centralizados disponibles que puedo dedicar para administrar y actualizar la base de datos de correcciones de compatibilidad personalizada centralizada?
Si adopta el enfoque centralizado, asegúrese de haber identificado a los propietarios adecuados y de que los propietarios y los evaluadores de aplicaciones tengan una ruta de acceso clara para escalar una solicitud de correcciones de compatibilidad que originen la implementación de una actualización en equipos de destino.

Los consultores de Microsoft se han dado cuenta de que esta estrategia tiende a ser el mejor enfoque cuando usted cuenta con una infraestructura de implementación sólida y una propiedad centralizada del proceso. Las ventajas principales han sido la responsabilidad y la simplificación de la compatibilidad (ya que la implementación de una versión específica de las correcciones de compatibilidad es más coherente en toda la organización).

Volver al inicio


Fusión de bases de datos de correcciones de compatibilidad personalizadas

Los clientes que han seleccionado un enfoque de base de datos de correcciones de compatibilidad personalizada centralizada se benefician del rendimiento mejorado de buscar una sola base de datos para determinar si Windows debe aplicar correcciones de compatibilidad a un archivo ejecutable específico. Una pregunta frecuente que les formulan a los consultores de Microsoft es cómo fusionar bases de datos de correcciones de compatibilidad personalizadas para crear una sola base de datos de este tipo. Los clientes generalmente han adoptado el siguiente enfoque:

  • Las herramientas de comprobación de compatibilidad de aplicaciones en general se ejecutan en un equipo que contiene la versión más reciente de la base de datos de correcciones de compatibilidad personalizada de la organización (que aún puede ser una versión preliminar).
  • Si una aplicación necesita correcciones de compatibilidad adicionales, la herramienta de comprobación creará una segunda base de datos de correcciones de compatibilidad personalizada que contenga las correcciones de compatibilidad necesarias para esa aplicación, que la herramienta de comprobación usa para comprobar las correcciones, y a través de prueba de aceptación del cliente.
  • Si la aplicación supera todas las pruebas de funcionalidad e integración, la base de datos de correcciones de compatibilidad personalizada de una sola aplicación se reenvía al equipo que administra esta base de datos.
  • El equipo central abre la copia maestra de la base de datos de correcciones de compatibilidad personalizada de la organización. Este paso es importante, porque la base de datos contiene un identificador único global (GUID) que facilita la actualización de la base de datos (instalar una nueva versión de una base de datos con el mismo GUID con una base de datos existente instalada en el equipo desinstala la versión anterior).
  • El equipo central después puede copiar y pegar las correcciones de compatibilidad, que se aplicaron en la nueva base de datos de correcciones de compatibilidad personalizada, en la base de datos de correcciones de compatibilidad maestra de la organización. (Estas son opciones que se encuentran en el menú contextual de Administrador de compatibilidad.)
  • El equipo central después vuelve a implementar la nueva versión de la base de datos de correcciones de compatibilidad personalizada que contiene la corrección de aplicación adicional en todos los usuarios.

Volver al inicio


Implementación de bases de datos de correcciones de compatibilidad (shim) personalizadas

Implementar una base de datos de correcciones de compatibilidad personalizada exige que se realicen las dos siguientes acciones:

  • Poner la base de datos de correcciones de compatibilidad personalizada (archivo *.sdb) en una ubicación a la que el equipo del usuario tenga acceso (ya sea local o en la red).
  • Llamar a la utilidad de línea de comandos sdbinst.exe para instalar la base de datos de correcciones de compatibilidad personalizada localmente; sdbinst.exe está ubicado en el directorio system32, que está en la ruta de casi todas las configuraciones de Windows.

Aunque cualquier enfoque que se adopte para realizar estas dos acciones funcionará, los clientes generalmente usan uno de los dos siguientes enfoques:

  • Empaquetar el archivo *.sdb y un script en un archivo .msi y después implementar este último archivo, asegurándose de marcar la acción personalizada para que no suplante al usuario que realiza la llamada. Por ejemplo, si usa el script Microsoft Visual Basic® Scripting Edition (VBScript), el tipo de acción personalizada sería msidbCustomActionTypeVBScript + msidbCustomActionTypeInScript + msidbCustomActionTypeNoImpersonate = 0x0006 + 0x0400 + 0x0800 = 0x0C06 = 3078 decimal.
  • Poner el archivo *.sdb en un recurso compartido de red y después llamar a un script en los equipos de destino, asegurándose de llamar al script en el momento en que reciba derechos elevados (por ejemplo, desde un script de inicio de equipo en lugar que desde un script de inicio de sesión de usuario).

Observe que debe asegurarse de que la instalación de la base de datos de correcciones de compatibilidad personalizada se ejecute con derechos administrativos.

Este script de ejemplo se toma de la acción personalizada de una instalación de Windows Installer (basada en MSI) de una base de datos de correcciones de compatibilidad personalizada:

script de muestra

Implementación inicial y actualizaciones

Puesto que la prueba y la mitigación de los problemas de compatibilidad de aplicaciones normalmente se producen antes de la implementación de una nueva versión de Windows, un enfoque común es incluir la base de datos de correcciones de compatibilidad personalizada que contenga todos los problemas conocidos en el momento de la implementación con la imagen corporativa. Después, cuando necesite actualizar la base de datos de correcciones de compatibilidad personalizada, podrá proporcionar estas actualizaciones usando uno de los mecanismos antes descritos. Esta es la metodología que Microsoft usa para administrar la base de datos de correcciones de compatibilidad de sistema. La versión inicial se lanzó con la versión Release to Manufacturing (RTM) de Windows y las actualizaciones se proporcionan con Windows Update. Cuando emplea este enfoque, está usando una metodología probada en una escala muy grande.

Volver al inicio


Resumen

Las correcciones de compatibilidad son una herramienta eficaz para mitigar los problemas de compatibilidad de aplicaciones y para avanzar con la implementación de Windows 7. Sin embargo, comprender cuándo realizar correcciones de compatibilidad y cómo administrarlas dentro de una organización puede representar un desafío.

Este artículo del producto ha revisado los enfoques que otros clientes han usado para aprovechar esta tecnología eficaz y, al mismo tiempo, para minimizar el riesgo y los costos. Comprender cómo funcionan las correcciones de compatibilidad con frecuencia es el paso más importante en el momento de adoptar la tecnología. Ha observado cómo establecer los criterios para seleccionar las aplicaciones para las que el uso de esta herramienta es apropiado después de que se ha tomado la decisión de adoptar la tecnología. Finalmente, estas notas del producto analizan los enfoques que la mayoría de los clientes usan para administrar e implementar una base de datos de correcciones de compatibilidad personalizada.

Volver al inicio

Tareas principales

Acerca del autor

Fotografía de Chris JacksonChris Jackson, conocido como " El chico de la compatibilidad de aplicaciones" es consultor principal y el líder técnico del equipo de Experiencia con aplicaciones (AE) SWAT de Windows. Como experto ampliamente reconocido en el campo de la compatibilidad de aplicaciones, Chris creó la documentación técnica, el entrenamiento y las ofertas de servicios usados dentro y fuera de Microsoft, basados en años de experiencia práctica con clientes empresariales y proveedores de software independientes.

Chris es autor o coautor de varios artículos técnicos y de artículos sobre la compatibilidad de aplicaciones, además de contribuir con TechNet Magazine. También es un orador destacado en los principales congresos de la industria alrededor del mundo, inclusive TechEd, IT Forum y Microsoft Management Summit.

Recursos relacionados

Manténgase informado

Microsoft está realizando una encuesta en línea para comprender su opinión del sitio web de. Si decide participar, se le presentará la encuesta en línea cuando abandone el sitio web de.

¿Desea participar?