Share via


Windows Installer를 사용하여 제품 및 패치를 인벤토리에 추가

관리자 권한이 있는 사용자 및 애플리케이션은 Windows Installer 기능을 사용하여 시스템에 설치된 Windows Installer 애플리케이션, 기능, 구성 요소 및 패치를 인벤토리에 추가할 수 있습니다.

Windows Installer 3.0부터 관리자 권한이 있는 사용자 및 애플리케이션은 모든 사용자가 시스템에 설치된 Windows Installer 애플리케이션, 기능, 구성 요소 및 패치를 열거할 수 있습니다. 관리자와 애플리케이션은 특정 사용자나 시스템의 모든 사용자에 대한 제품 또는 패치에 대한 정보를 받을 수 있습니다. 애플리케이션은 특정 사용자의 기능 상태 또는 구성 요소 상태를 가져올 수 있습니다.

인벤토리 기능은 Windows Installer 3.0부터 제공되며, 이를 통해 설치 컨텍스트 및 사용자 컨텍스트에서 찾을 항목의 범위를 제한할 수 있습니다. 세 가지 가능한 설치 컨텍스트는 사용자당, 컴퓨터별 및 사용자별 관리형입니다. 사용자 컨텍스트는 특정 사용자 또는 시스템의 모든 사용자일 수 있습니다.

Windows Installer 3.0 이전 버전의 Windows Installer 인벤토리 기능은 컴퓨터 컨텍스트 또는 현재 사용자의 사용자별 컨텍스트에서 시스템에 설치된 항목만 열거할 수 있습니다. 이러한 제한은 현재 사용자 이외의 사용자가 시스템에 설치된 모든 Windows Installer 제품 및 패치의 전체 인벤토리를 사용하는 것을 방지합니다.

제품 열거

MsiEnumProductsEx 함수를 사용하여 시스템에 설치된 Windows Installer 애플리케이션을 열거합니다. 이 함수는 현재 사용자 및 시스템의 다른 사용자에 대한 모든 컴퓨터별 설치 및 애플리케이션의 사용자별 설치(관리 및 관리되지 않음)를 찾을 수 있습니다. dwContext 매개 변수를 사용하여 찾을 설치 컨텍스트를 지정합니다. 가능한 설치 컨텍스트 중 하나 또는 모든 조합을 지정할 수 있습니다. szUserSid 매개 변수를 사용하여 찾을 애플리케이션의 사용자 컨텍스트를 지정합니다.

패치 열거

MsiEnumPatchesEx 함수를 사용하여 애플리케이션에 적용된 패치를 찾습니다. 이 함수는 특정 애플리케이션 또는 시스템의 모든 애플리케이션에 적용된 패치를 찾을 수 있습니다. 이 함수는 현재 사용자 및 시스템의 다른 사용자에 대한 모든 컴퓨터별 설치 및 애플리케이션의 사용자별 설치(관리 및 비관리)에 적용된 패치를 찾을 수 있습니다.

설치 컨텍스트 및 사용자 컨텍스트를 사용하여 패치 열거를 특정 컨텍스트 또는 모든 컨텍스트로 제한할 수 있습니다. dwContext 매개 변수를 사용하여 찾을 설치 컨텍스트를 지정합니다. 가능한 설치 컨텍스트 중 하나 또는 모든 조합을 지정할 수 있습니다. szUserSid 매개 변수를 사용하여 찾을 애플리케이션의 사용자 컨텍스트를 지정합니다.

시스템의 모든 사용자가 보급하거나 설치한 모든 제품에 적용된 패치 열거

  • MsiEnumPatchesEx 함수를 호출합니다.
    • szProductCode 매개 변수 값에 NULL을 사용합니다.
    • szUserSid 매개 변수 값에 "s-1-1-0"을 사용합니다.
    • dwContext 매개 변수 값에 "MSIINSTALLCONTEXT_ALL"을 사용합니다.

시스템의 모든 사용자가 보급하거나 설치한 모든 제품에 적용된 패치 열거

  1. MsiEnumProductsEx 함수를 호출합니다.

    • szProductCode 매개 변수 값에 NULL을 사용합니다.
    • szUserSid 매개 변수 값에 "s-1-1-0"을 사용합니다.
    • dwContext 매개 변수 값에 "MSIINSTALLCONTEXT_ALL"을 사용합니다.

    함수는 찾은 각 애플리케이션에 대한 제품 코드, 사용자 컨텍스트 및 설치 컨텍스트를 제공합니다.

  2. 1단계에서 열거된 각 애플리케이션에 대해 MsiEnumPatchesEx를 호출하여 패치를 열거합니다.

    szProductCode, szUserSid, dwContext 및 각 MsiEnumProductsEx 함수 호출 값에 대해 MsiEnumProductsEx에서 가져온 제품 코드, 사용자 컨텍스트 및 설치 컨텍스트를 사용합니다.

제품 정보 받기

MsiGetProductInfoEx 함수를 사용하여 시스템에 보급되거나 설치된 애플리케이션 및 검색할 수 있는 속성에 대한 정보를 가져옵니다. 이 함수는 현재 사용자가 아닌 사용자 계정으로 설치된 애플리케이션 인스턴스에 대한 정보를 받을 수 있지만 현재 사용자 이외의 사용자 계정에 대해 사용자별 비관리 컨텍스트에서 보급된 제품의 인스턴스를 쿼리할 수는 없습니다.

설치 컨텍스트 및 사용자 컨텍스트를 지정하여 특정 컨텍스트에 설치된 애플리케이션에 대한 정보를 제한할 수 있습니다. dwContext 매개 변수를 사용하여 찾을 설치 컨텍스트를 지정합니다. 가능한 설치 컨텍스트 중 하나만 지정할 수 있습니다. szUserSid 매개 변수를 사용하여 찾을 애플리케이션의 사용자 컨텍스트를 지정합니다.

패치 정보 받기

애플리케이션은 MsiGetPatchInfoEx 함수를 호출하여 제품의 지정된 인스턴스에 패치를 적용하는 방법에 대한 정보를 쿼리할 수 있습니다. LocalPackage, TransformsState와 같은 속성은 이 함수를 사용하여 검색할 수 있습니다. 사용자가 현재 컴퓨터에 로그인하지 않은 경우 사용자별 비관리 애플리케이션에 모든 속성 값을 사용할 수 있는 것은 아닙니다. 가능한 설치 컨텍스트 중 하나만 지정할 수 있습니다.

설치 컨텍스트 및 사용자 컨텍스트를 지정하여 특정 컨텍스트에 설치된 애플리케이션에 적용된 패치로 정보를 제한할 수 있습니다. dwContext 매개 변수를 사용하여 찾을 설치 컨텍스트를 지정합니다. 가능한 설치 컨텍스트 중 하나만 지정할 수 있습니다. szUserSid 매개 변수를 사용하여 찾을 애플리케이션의 사용자 컨텍스트를 지정합니다.

구성 요소 상태 정보 받기

애플리케이션은 MsiQueryComponentState 함수를 호출하여 구성 요소에 대해 설치된 상태 정보를 받을 수 있습니다. 이 함수는 구성 요소가 로컬로 설치되어 있거나 원본에서 실행되도록 설치되었는지 확인합니다. 이 함수는 현재 사용자 이외의 사용자 계정에 대한 사용자별 비관리 컨텍스트에서 제품이 보급되지 않는 경우 현재 사용자가 아닌 사용자 계정으로 설치된 애플리케이션 인스턴스의 구성 요소를 쿼리할 수 있습니다.

설치 컨텍스트 및 사용자 컨텍스트를 지정하여 특정 컨텍스트에 설치된 애플리케이션에 대한 구성 요소의 상태 정보를 받을 수 있습니다. dwContext 매개 변수를 사용하여 찾을 설치 컨텍스트를 지정합니다. 가능한 설치 컨텍스트 중 하나만 지정할 수 있습니다. szUserSid 매개 변수를 사용하여 찾을 애플리케이션의 사용자 컨텍스트를 지정합니다.

기능 상태 정보 받기

애플리케이션은 MsiQueryFeatureStateEx 함수를 호출하여 제품 기능에 대해 설치된 상태 정보를 받을 수 있습니다. 이 함수는 기능이 보급되어 있거나 로컬로 설치되어 있거나 원본에서 실행되도록 설치되어 있는지 여부를 확인합니다. 이 함수를 사용하여 컴퓨터 계정 아래에 설치된 애플리케이션 인스턴스의 기능 또는 현재 사용자 계정 아래의 컨텍스트 또는 현재 사용자 이외의 사용자 계정 아래에서 사용자별 관리 컨텍스트를 쿼리할 수 있습니다. 이 함수는 현재 사용자 이외의 사용자 계정에 대해 사용자별 비관리 컨텍스트 아래에 설치된 애플리케이션을 쿼리할 수 없습니다. 가능한 설치 컨텍스트 중 하나만 지정할 수 있습니다.

설치 컨텍스트 및 사용자 컨텍스트를 지정하여 특정 컨텍스트에 설치된 애플리케이션에 대한 기능의 상태 정보를 받을 수 있습니다. dwContext 매개 변수를 사용하여 찾을 설치 컨텍스트를 지정합니다. 가능한 설치 컨텍스트 중 하나만 지정할 수 있습니다. szUserSid 매개 변수를 사용하여 찾을 애플리케이션의 사용자 컨텍스트를 지정합니다.