Usando o Windows Installer para inventariar produtos e patches
Os usuários e aplicativos com privilégios administrativos podem usar as funções do Windows Installer para inventariar os aplicativos, recursos, componentes e patches do Windows Installer instalados no sistema.
A partir do Windows Installer 3.0, os usuários e aplicativos que têm privilégios de administrador podem enumerar os aplicativos, recursos, componentes e patches do Windows Installer instalados no sistema por todos os usuários. Administradores e aplicativos podem obter informações sobre um produto ou patch para um usuário específico ou todos os usuários no sistema. Os aplicativos podem obter o estado do recurso ou o estado do componente para um usuário específico.
As funções de inventário disponíveis a partir do Windows Installer 3.0 podem limitar o escopo de itens a serem encontrados por contexto de instalação e contexto de usuário. Há três contextos de instalação possíveis: por usuário, por máquina e por usuário gerenciado. O contexto do usuário pode ser um usuário específico ou todos os usuários do sistema.
As versões das funções de inventário do Windows Installer anteriores ao Windows Installer 3.0 só podem enumerar itens instalados no sistema no contexto da máquina ou no contexto por usuário do usuário atual. Essa limitação impede um inventário completo de todos os produtos e patches do Windows Installer instalados no sistema por usuários que não sejam o usuário atual.
- Enumerando Produtos
- Enumerando correções
- Obtenção de informações sobre o produto
- Obtendo informações sobre patches
- Obtenção de informações sobre o estado do componente
- Obtendo informações de estado da funcionalidade
Enumerando produtos
Use a funçãoMsiEnumProductsEx para enumerar os aplicativos do Windows Installer instalados no sistema. Esta função pode encontrar todas as instalações por máquina e instalações por usuário de aplicativos (gerenciados e não gerenciados) para o usuário atual e outros usuários no sistema. Use o parâmetro dwContext para especificar o contexto de instalação a ser encontrado. Você pode especificar qualquer um ou qualquer combinação dos contextos de instalação possíveis. Use o parâmetro szUserSid para especificar o contexto de usuário dos aplicativos a serem encontrados.
Enumerando correções
Use a função MsiEnumPatchesEx para encontrar patches aplicados a uma aplicação. Esta função pode encontrar patches aplicados para uma aplicação específica ou para todas as aplicações no sistema. Esta função pode encontrar patches aplicados a todas as instalações por máquina e instalações por usuário de aplicativos (gerenciados e não gerenciados) para o usuário atual e outros usuários no sistema.
Você pode usar o contexto de instalação e o contexto de usuário para restringir a enumeração de patch a um contexto específico ou em todos os contextos. Use o parâmetro dwContext para especificar o contexto de instalação a ser encontrado. Você pode especificar qualquer um ou qualquer combinação dos contextos de instalação possíveis. Use o parâmetro szUserSid para especificar o contexto de usuário dos aplicativos a serem encontrados.
Para enumerar patches aplicados a todos os produtos anunciados ou instalados por todos os usuários no sistema
- Chame a função MsiEnumPatchesEx .
- Use NULL para o parâmetro szProductCode.
- Utilize "s-1-1-0" como valor do parâmetro szUserSid.
- Use "MSIINSTALLCONTEXT_ALL" para o valor do parâmetro dwContext.
Para enumerar patches aplicados a todos os produtos anunciados ou instalados por todos os usuários no sistema
Chame a função MsiEnumProductsEx .
- Use NULL para o valor do parâmetro szProductCode.
- Use "s-1-1-0" como valor do parâmetro szUserSid.
- Utilize "MSIINSTALLCONTEXT_ALL" para o valor do parâmetro dwContext.
A função fornece um código de produto, contexto de usuário e contexto de instalação para cada aplicativo encontrado.
Para cada aplicativo enumerado na etapa 1, chame MsiEnumPatchesEx para enumerar os patches.
Use os códigos de produto, contextos de utilizador e contextos de instalação obtidos a partir de MsiEnumProductsEx para os valores de szProductCode, szUserSid, e dwContext, e cada chamada de função MsiEnumProductsEx.
Obtenção de informações sobre o produto
Use a funçãoMsiGetProductInfoEx para obter informações sobre aplicativos anunciados ou instalados no sistema e as propriedades que podem ser recuperadas. Essa função pode obter informações para uma instância de um aplicativo instalado em uma conta de usuário diferente do usuário atual, mas não pode consultar uma instância de um produto que é anunciado em um contexto não gerenciado por usuário para uma conta de usuário diferente do usuário atual.
Você pode especificar o contexto de instalação e o contexto do usuário para restringir informações para aplicativos instalados em um contexto específico. Use o parâmetro dwContext para especificar o contexto de instalação a ser encontrado. Você pode especificar apenas um dos contextos de instalação possíveis. Use o parâmetro szUserSid para especificar o contexto de usuário dos aplicativos a serem encontrados.
Obtendo informações sobre patches
Um aplicativo pode chamar a funçãoMsiGetPatchInfoEx para consultar informações sobre a aplicação de um patch a uma instância especificada de um produto. Propriedades como LocalPackage , Transformse State podem ser recuperadas usando essa função. Nem todos os valores de propriedade têm a garantia de estar disponíveis para aplicativos não gerenciados por usuário se o usuário não estiver conectado à máquina no momento. Você pode especificar apenas um dos contextos de instalação possíveis.
Você pode especificar o contexto de instalação e o contexto do usuário para restringir as informações a patches aplicados a aplicativos instalados em um contexto específico. Use o parâmetro dwContext para especificar o contexto de instalação a ser encontrado. Você pode especificar apenas um dos contextos de instalação possíveis. Use o parâmetro szUserSid para especificar o contexto de usuário dos aplicativos a serem encontrados.
Obtendo informações sobre o estado do componente
Os aplicativos podem chamar a função MsiQueryComponentState para obter o estado instalado de um componente. Esta função determina se o componente é instalado localmente ou instalado para ser executado a partir da origem. A função pode consultar um componente de uma instância de um aplicativo que está instalado em contas de usuário diferentes do usuário atual, desde que o produto não seja anunciado no contexto não gerenciado por usuário para uma conta de usuário diferente do usuário atual.
Você pode especificar um contexto de instalação e um contexto de usuário para obter o estado dos componentes para aplicativos instalados em um contexto específico. Use o parâmetro dwContext para especificar o contexto de instalação a ser encontrado. Você pode especificar apenas um dos contextos de instalação possíveis. Use o parâmetro szUserSid para especificar o contexto de usuário dos aplicativos a serem encontrados.
Obtendo informações sobre o estado da funcionalidade
As aplicações podem chamar a função MsiQueryFeatureStateEx para obter o estado instalado de uma funcionalidade do produto. Esta função determina se o recurso é anunciado, instalado localmente ou instalado para ser executado a partir da fonte. A função pode ser usada para consultar qualquer característica de uma instância de uma aplicação instalada na conta da máquina ou em qualquer contexto na conta de utilizador atual, ou no contexto gerido por utilizador em qualquer conta de utilizador diferente da conta atual. Esta função não pode consultar um aplicativo instalado no contexto não gerenciado por usuário para uma conta de usuário diferente do usuário atual. Você pode especificar apenas um dos contextos de instalação possíveis.
Você pode especificar um contexto de instalação e um contexto de usuário para obter o estado dos recursos para aplicativos instalados em um contexto específico. Use o parâmetro dwContext para especificar o contexto de instalação a ser encontrado. Você pode especificar apenas um dos contextos de instalação possíveis. Use o parâmetro szUserSid para especificar o contexto de usuário dos aplicativos a serem encontrados.