Поделиться через


Использование установщика Windows для инвентаризации продуктов и исправлений

Пользователи и приложения с правами администратора могут использовать функции установщика Windows для инвентаризации приложений, компонентов, компонентов и исправлений, установленных в системе.

Начиная с установщика Windows 3.0 пользователи и приложения с правами администратора могут перечислять приложения, компоненты, компоненты и исправления установщика Windows, установленные в системе всеми пользователями. Администраторы и приложения могут получать сведения о продукте или исправлении для конкретного пользователя или всех пользователей в системе. Приложения могут получить состояние компонента или компонента для конкретного пользователя.

Функции инвентаризации, доступные начиная с установщика Windows 3.0, могут ограничивать область элементов, которые нужно найти, в контексте установки и контексте пользователя. Существует три возможных контекста установки: для каждого пользователя, для компьютера и для каждого пользователя. Контекстом пользователя может быть конкретный пользователь или все пользователи в системе.

Версии функций инвентаризации установщика Windows, более ранние, чем установщик Windows 3.0, могут перечислять элементы, установленные в системе, только в контексте компьютера или в контексте текущего пользователя для каждого пользователя. Это ограничение предотвращает полную инвентаризацию всех продуктов и исправлений установщика Windows, установленных в системе пользователями, кроме текущего пользователя.

Перечисление продуктов

Используйте функцию MsiEnumProductsEx для перечисления приложений установщика Windows, установленных в системе. Эта функция может найти все установки на компьютере и установки приложений (управляемых и неуправляемых) для текущего пользователя и других пользователей в системе. Используйте параметр dwContext , чтобы указать контекст установки, который необходимо найти. Можно указать любой из возможных контекстов установки или любое сочетание. Используйте параметр szUserSid , чтобы указать контекст пользователя приложений, которые нужно найти.

Перечисление исправлений

Используйте функцию MsiEnumPatchesEx для поиска исправлений, примененных к приложению. Эта функция может находить исправления, примененные к конкретному приложению или ко всем приложениям в системе. Эта функция может находить исправления, применяемые ко всем установкам на компьютере и установкам приложений (управляемых и неуправляемых) для текущего пользователя и других пользователей в системе.

Вы можете использовать контекст установки и контекст пользователя, чтобы ограничить перечисление исправлений определенным контекстом или во всех контекстах. Используйте параметр dwContext , чтобы указать контекст установки, который необходимо найти. Можно указать любой из возможных контекстов установки или любое сочетание. Используйте параметр szUserSid , чтобы указать контекст пользователя приложений, которые нужно найти.

Перечисление исправлений, примененных ко всем продуктам, объявленным или установленным всеми пользователями в системе

  • Вызовите функцию MsiEnumPatchesEx .
    • Используйте значение NULL для параметра szProductCode .
    • Используйте "s-1-1-0" для значения параметра szUserSid .
    • Используйте "MSIINSTALLCONTEXT_ALL" для значения параметра dwContext .

Перечисление исправлений, примененных ко всем продуктам, объявленным или установленным всеми пользователями в системе

  1. Вызовите функцию MsiEnumProductsEx .

    • Используйте значение NULL для параметра szProductCode .
    • Используйте "s-1-1-0" для значения параметра szUserSid .
    • Используйте "MSIINSTALLCONTEXT_ALL" для значения параметра dwContext .

    Функция предоставляет код продукта, контекст пользователя и контекст установки для каждого найденного приложения.

  2. Для каждого приложения, перечисленного на шаге 1, вызовите MsiEnumPatchesEx , чтобы перечислить исправления.

    Используйте коды продуктов, контексты пользователей и контексты установки, полученные из MsiEnumProductsEx , для значений szProductCode, szUserSid и dwContext, а также для каждого вызова функции MsiEnumProductsEx .

Получение сведений о продукте

Используйте функцию MsiGetProductInfoEx для получения сведений о приложениях, объявленных или установленных в системе, и свойствах, которые можно получить. Эта функция может получать сведения для экземпляра приложения, установленного под учетной записью пользователя, отличной от текущего пользователя, но не может запрашивать экземпляр продукта, объявленного в неуправляемом контексте для учетной записи пользователя, отличной от текущего пользователя.

Вы можете указать контекст установки и контекст пользователя, чтобы ограничить сведения для приложений, установленных в определенном контексте. Используйте параметр dwContext , чтобы указать контекст установки, который необходимо найти. Можно указать только один из возможных контекстов установки. Используйте параметр szUserSid , чтобы указать контекст пользователя приложений, которые нужно найти.

Получение сведений об исправлениях

Приложение может вызывать функцию MsiGetPatchInfoEx для запроса сведений о применении исправления к указанному экземпляру продукта. С помощью этой функции можно получить такие свойства, как LocalPackage, Transforms и State . Не все значения свойств гарантированно будут доступны для неуправляемых приложений для каждого пользователя, если пользователь в настоящее время не вошел в систему на компьютере. Можно указать только один из возможных контекстов установки.

Вы можете указать контекст установки и контекст пользователя, чтобы ограничить сведения исправлениями, применяемыми к приложениям, установленным в определенном контексте. Используйте параметр dwContext , чтобы указать контекст установки, который необходимо найти. Можно указать только один из возможных контекстов установки. Используйте параметр szUserSid , чтобы указать контекст пользователя приложений, которые нужно найти.

Получение сведений о состоянии компонента

Приложения могут вызывать функцию MsiQueryComponentState , чтобы получить состояние установленного компонента. Эта функция определяет, установлен ли компонент локально или для запуска из источника. Функция может запрашивать компонент экземпляра приложения, установленного в учетных записях пользователей, отличных от текущего пользователя, при условии, что продукт не объявляется в неуправляемом контексте для учетной записи пользователя, отличной от текущего пользователя.

Вы можете указать контекст установки и контекст пользователя, чтобы получить состояние компонентов для приложений, установленных в определенном контексте. Используйте параметр dwContext , чтобы указать контекст установки, который необходимо найти. Можно указать только один из возможных контекстов установки. Используйте параметр szUserSid , чтобы указать контекст пользователя приложений, которые нужно найти.

Получение сведений о состоянии компонента

Приложения могут вызывать функцию MsiQueryFeatureStateEx , чтобы получить состояние установленного компонента продукта. Эта функция определяет, является ли компонент объявленным, установленным локально или для запуска из источника. Функция может использоваться для запроса любого компонента экземпляра приложения, установленного под учетной записью компьютера, или любого контекста в текущей учетной записи пользователя или управляемого контекста для каждого пользователя в любой учетной записи пользователя, отличной от текущего пользователя. Эта функция не может запрашивать приложение, установленное в неуправляемом контексте для учетной записи пользователя, отличной от текущего пользователя. Можно указать только один из возможных контекстов установки.

Вы можете указать контекст установки и контекст пользователя, чтобы получить состояние компонентов для приложений, установленных в определенном контексте. Используйте параметр dwContext , чтобы указать контекст установки, который необходимо найти. Можно указать только один из возможных контекстов установки. Используйте параметр szUserSid , чтобы указать контекст пользователя приложений, которые нужно найти.