使用 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」。
    • 使用 「MSIINSTALLCONTEXT_ALL」 做為 dwCoNtext 參數的值。

列舉針對系統中所有使用者公告或安裝的所有產品所套用的修補程式

  1. 呼叫 MsiEnumProductsEx 函式。

    • 針對szProductCode參數的值使用Null
    • 針對 szUserSid 參數的值,請使用 「s-1-1-0」。
    • 使用 「MSIINSTALLCONTEXT_ALL」 做為 dwCoNtext 參數的值。

    函式會為每個找到的應用程式提供產品代碼、使用者內容和安裝內容。

  2. 針對步驟 1 中列舉的每個應用程式,呼叫 MsiEnumPatchesEx 來列舉修補程式。

    針對szProductCodeszUserSiddwCoNtext的值,以及每個MsiEnumProductsEx函式呼叫,請使用從MsiEnumProductsEx取得的產品代碼、使用者內容和安裝內容。

取得產品資訊

使用 MsiGetProductInfoEx 函式來取得系統上公告或安裝之應用程式的相關資訊,以及可擷取的屬性。 此函式可以取得安裝在目前使用者以外的使用者帳戶下之應用程式實例的資訊,但無法查詢在每個使用者非受控內容下公告之使用者帳戶的產品實例。

您可以指定安裝內容和使用者內容,以限制特定內容中安裝之應用程式的資訊。 使用 dwCoNtext 參數指定要找到的安裝內容。 您只能指定其中一個可能的安裝內容。 使用 szUserSid 參數指定要找到之應用程式的使用者內容。

取得修補程式資訊

應用程式可以呼叫 MsiGetPatchInfoEx 函式,以查詢修補程式應用程式至指定產品實例的相關資訊。 您可以使用此函式來擷取 LocalPackageTransformsState 等屬性。 如果使用者目前未登入電腦,則並非所有屬性值都可供每個使用者非受控應用程式使用。 您只能指定其中一個可能的安裝內容。

您可以指定安裝內容和使用者內容,以限制套用至特定內容中安裝之應用程式的修補程式資訊。 使用 dwCoNtext 參數指定要找到的安裝內容。 您只能指定其中一個可能的安裝內容。 使用 szUserSid 參數指定要找到之應用程式的使用者內容。

取得元件狀態資訊

應用程式可以呼叫 MsiQueryComponentState 函式,以取得元件的已安裝狀態。 此函式會判斷元件是否已安裝在本機或安裝以從來源執行。 函式可以查詢安裝在目前使用者以外的使用者帳戶下之應用程式實例的元件,前提是產品不會在目前使用者以外的使用者帳戶下公告。

您可以指定安裝內容和使用者內容,以取得在特定內容中安裝之應用程式的元件狀態。 使用 dwCoNtext 參數指定要找到的安裝內容。 您只能指定其中一個可能的安裝內容。 使用 szUserSid 參數指定要找到之應用程式的使用者內容。

取得功能狀態資訊

應用程式可以呼叫 MsiQueryFeatureStateEx 函式,以取得產品功能的已安裝狀態。 此函式會判斷功能是否已在本機公告、安裝,或安裝以從來源執行。 函式可用來查詢安裝在電腦帳戶下之應用程式實例的任何功能,或是目前使用者帳戶下的任何內容,或目前使用者以外的任何使用者帳戶下的每位使用者管理內容。 此函式無法針對目前使用者以外的使用者帳戶,查詢安裝在每個使用者非受控內容下的應用程式。 您只能指定其中一個可能的安裝內容。

您可以指定安裝內容和使用者內容,以取得在特定內容中安裝之應用程式的功能狀態。 使用 dwCoNtext 參數指定要找到的安裝內容。 您只能指定其中一個可能的安裝內容。 使用 szUserSid 參數指定要找到之應用程式的使用者內容。