다음을 통해 공유


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 호출하여 패치를 열거합니다.

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

제품 정보 가져오기

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

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

패치 정보 가져오기

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

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

구성 요소 상태 정보 가져오기

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

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

기능 상태 정보 가져오기

애플리케이션은 MsiQueryFeatureStateEx 함수를 호출하여 제품 기능에 대해 설치된 상태를 가져올 수 있습니다. 이 함수는 기능이 광고되었는지, 로컬에 설치되었는지, 또는 소스에서 실행되도록 설치되었는지를 결정합니다. 이 함수는 컴퓨터 계정 아래에 설치된 애플리케이션 인스턴스의 기능이나 현재 사용자 계정의 컨텍스트 또는 현재 사용자 이외의 사용자 계정에서 사용자별 관리되는 컨텍스트를 쿼리하는 데 사용할 수 있습니다. 이 함수는 현재 사용자 이외의 사용자 계정에 대해 사용자별 관리되지 않는 컨텍스트에 설치된 애플리케이션을 쿼리할 수 없습니다. 가능한 설치 컨텍스트 중 하나만 지정할 수 있습니다.

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