Share via


Usar Windows Installer para inventariar productos y revisiones

Los usuarios y las aplicaciones con privilegios administrativos pueden usar funciones de Windows Installer para inventariar las aplicaciones, características, componentes y revisiones de Windows Installer instalados en el sistema.

A partir de Windows Installer 3.0, los usuarios y las aplicaciones que tienen privilegios de administrador pueden enumerar las aplicaciones, características, componentes y revisiones de Windows Installer instalados en el sistema por todos los usuarios. Los administradores y las aplicaciones pueden obtener información sobre un producto o una revisión para un usuario determinado o todos los usuarios del sistema. Las aplicaciones pueden obtener el estado de la característica o el estado del componente para un usuario determinado.

Las funciones de inventario disponibles a partir de Windows Installer 3.0 pueden limitar el ámbito de los elementos que desea encontrar por el contexto de instalación y el contexto de usuario. Hay tres contextos de instalación posibles: los administrados por usuario, por máquina y por usuario. El contexto de usuario puede ser un usuario determinado o todos los usuarios del sistema.

Las versiones de las funciones de inventario de Windows Installer anteriores a Windows Installer 3.0 solo pueden enumerar los elementos instalados en el sistema en el contexto del equipo o en el contexto por usuario del usuario actual. Esta limitación impide un inventario completo de todos los productos y revisiones de Windows Installer instalados en el sistema por los usuarios distintos del usuario actual.

Enumerar productos

Use la función MsiEnumProductsEx para enumerar las aplicaciones de Windows Installer instaladas en el sistema. Esta función puede encontrar todas las instalaciones por máquina y las instalaciones por usuario de las aplicaciones (administradas y no administradas) para el usuario actual y otros usuarios del sistema. Use el parámetro dwContext para especificar el contexto de instalación que desea encontrar. Puede especificar cualquiera o cualquier combinación de los posibles contextos de instalación. Use el parámetro szUserSid para especificar el contexto de usuario de las aplicaciones que desea encontrar.

Enumerar revisiones

Use la función MsiEnumPatchesEx para buscar las revisiones aplicadas a una aplicación. Esta función puede encontrar revisiones aplicadas para una aplicación determinada o para todas las aplicaciones del sistema. Esta función puede encontrar revisiones aplicadas a todas las instalaciones por máquina y las instalaciones por usuario de las aplicaciones (administradas y no administradas) para el usuario actual y otros usuarios del sistema.

Puede usar el contexto de instalación y el contexto de usuario para restringir la enumeración de revisiones a un contexto determinado o a todos los contextos. Use el parámetro dwContext para especificar el contexto de instalación que desea encontrar. Puede especificar cualquiera o cualquier combinación de los posibles contextos de instalación. Use el parámetro szUserSid para especificar el contexto de usuario de las aplicaciones que desea encontrar.

Para enumerar las revisiones aplicadas a todos los productos anunciados o instalados por todos los usuarios del sistema

  • Llame a la función MsiEnumPatchesEx .
    • Use NULL para el valor del parámetro szProductCode .
    • Use "s-1-1-0" para el valor del parámetro szUserSid.
    • Use "MSIINSTALLCONTEXT_ALL" para el valor del parámetro dwContext.

Para enumerar las revisiones aplicadas a todos los productos anunciados o instalados por todos los usuarios del sistema

  1. Llame a la función MsiEnumProductsEx.

    • Use NULL para el valor del parámetro szProductCode .
    • Use "s-1-1-0" para el valor del parámetro szUserSid.
    • Use "MSIINSTALLCONTEXT_ALL" para el valor del parámetro dwContext.

    La función proporciona un código de producto, un contexto de usuario y un contexto de instalación para cada aplicación encontrada.

  2. Para cada aplicación enumerada en el paso 1, llame a MsiEnumPatchesEx para enumerar las revisiones.

    Use los códigos de producto, los contextos de usuario y los contextos de instalación obtenidos de MsiEnumProductsEx para los valores de szProductCode, szUserSid y dwContext, y cada llamada de función MsiEnumProductsEx.

Obtener información del producto

Use la función MsiGetProductInfoEx para obtener información sobre las aplicaciones anunciadas o instaladas en el sistema y las propiedades que se pueden recuperar. Esta función puede obtener información de una instancia de una aplicación instalada en una cuenta de usuario distinta del usuario actual, pero no puede consultar una instancia de un producto que se anuncia en un contexto no administrado por usuario para una cuenta de usuario distinta del usuario actual.

Puede especificar el contexto de instalación y el contexto de usuario para restringir la información de las aplicaciones instaladas en un contexto determinado. Use el parámetro dwContext para especificar el contexto de instalación que desea encontrar. Solo puede especificar uno de los posibles contextos de instalación. Use el parámetro szUserSid para especificar el contexto de usuario de las aplicaciones que desea encontrar.

Obtener información de la revisión

Una aplicación puede llamar a la función MsiGetPatchInfoEx para consultar información sobre la aplicación de una revisión en una instancia especificada de un producto. Las propiedades como LocalPackage, Transformaciones y Estado se pueden recuperar mediante esta función. No se garantiza que todos los valores de propiedad estén disponibles para las aplicaciones no administradas por usuario si el usuario no ha iniciado la sesión actualmente en la máquina. Solo puede especificar uno de los posibles contextos de instalación.

Puede especificar el contexto de instalación y el contexto de usuario para restringir la información a las revisiones aplicadas a las aplicaciones instaladas en un contexto determinado. Use el parámetro dwContext para especificar el contexto de instalación que desea encontrar. Solo puede especificar uno de los posibles contextos de instalación. Use el parámetro szUserSid para especificar el contexto de usuario de las aplicaciones que desea encontrar.

Obtener información del estado de los componentes

Las aplicaciones pueden llamar a la función MsiQueryComponentState para obtener el estado instalado de un componente. Esta función determina si el componente está instalado localmente o instalado para ejecutarse desde el origen. La función puede consultar un componente de una instancia de una aplicación instalada en cuentas de usuario distintas del usuario actual, siempre que el producto no se anuncie en el contexto no administrado por usuario para una cuenta de usuario distinta del usuario actual.

Puede especificar un contexto de instalación y un contexto de usuario para obtener el estado de los componentes de las aplicaciones instaladas en un contexto determinado. Use el parámetro dwContext para especificar el contexto de instalación que desea encontrar. Solo puede especificar uno de los posibles contextos de instalación. Use el parámetro szUserSid para especificar el contexto de usuario de las aplicaciones que desea encontrar.

Obtener información del estado de las características

Las aplicaciones pueden llamar a la función MsiQueryFeatureStateEx para obtener el estado instalado de una característica de producto. Esta función determina si la característica está anunciada, instalada localmente o instalada para ejecutarse desde el origen. La función se puede usar para consultar cualquier característica de una instancia de una aplicación instalada en la cuenta del equipo o en cualquier contexto de la cuenta de usuario actual o el contexto administrado por usuario en cualquier cuenta de usuario distinta del usuario actual. Esta función no puede consultar una aplicación instalada en el contexto no administrado por usuario para una cuenta de usuario distinta del usuario actual. Solo puede especificar uno de los posibles contextos de instalación.

Puede especificar un contexto de instalación y un contexto de usuario para obtener el estado de las características de las aplicaciones instaladas en un contexto determinado. Use el parámetro dwContext para especificar el contexto de instalación que desea encontrar. Solo puede especificar uno de los posibles contextos de instalación. Use el parámetro szUserSid para especificar el contexto de usuario de las aplicaciones que desea encontrar.