Condividi tramite


Uso di Windows Installer per l'inventario di prodotti e patch

Gli utenti e le applicazioni con privilegi amministrativi possono usare le funzioni di Windows Installer per inventariare le applicazioni, le funzionalità, i componenti e le patch installate nel sistema.

A partire da Windows Installer 3.0, gli utenti e le applicazioni con privilegi di amministratore possono enumerare le applicazioni, le funzionalità, i componenti e le patch installate nel sistema da tutti gli utenti. Gli amministratori e le applicazioni possono ottenere informazioni su un prodotto o una patch per un utente specifico o per tutti gli utenti del sistema. Le applicazioni possono ottenere lo stato della funzionalità o del componente per un determinato utente.

Le funzioni di inventario disponibili a partire da Windows Installer 3.0 possono limitare l'ambito degli elementi da trovare in base al contesto di installazione e al contesto utente. Esistono tre possibili contesti di installazione: per utente, per computer e per utente gestito. Il contesto utente può essere un utente specifico o tutti gli utenti del sistema.

Le versioni delle funzioni di inventario di Windows Installer precedenti a Windows Installer 3.0 possono enumerare solo gli elementi installati nel sistema nel contesto del computer o nel contesto per utente dell'utente corrente. Questa limitazione impedisce un inventario completo di tutti i prodotti e le patch di Windows Installer installati nel sistema da utenti diversi dall'utente corrente.

Enumerazione dei prodotti

Usare la funzione MsiEnumProductsEx per enumerare le applicazioni di Windows Installer installate nel sistema. Questa funzione può trovare tutte le installazioni per computer e le installazioni per utente delle applicazioni (gestite e non gestite) per l'utente corrente e altri utenti nel sistema. Usare il parametro dwContext per specificare il contesto di installazione da trovare. È possibile specificare una o qualsiasi combinazione dei possibili contesti di installazione. Usare il parametro szUserSid per specificare il contesto utente delle applicazioni da trovare.

Enumerazione delle patch

Usare la funzione MsiEnumPatchesEx per trovare le patch applicate per un'applicazione. Questa funzione può trovare le patch applicate per una determinata applicazione o per tutte le applicazioni nel sistema. Questa funzione può trovare le patch applicate a tutte le installazioni per computer e alle installazioni per utente delle applicazioni (gestite e non gestite) per l'utente corrente e altri utenti del sistema.

È possibile usare il contesto di installazione e il contesto utente per limitare l'enumerazione patch a un contesto specifico o in tutti i contesti. Usare il parametro dwContext per specificare il contesto di installazione da trovare. È possibile specificare una o qualsiasi combinazione dei possibili contesti di installazione. Usare il parametro szUserSid per specificare il contesto utente delle applicazioni da trovare.

Per enumerare le patch applicate per tutti i prodotti annunciati o installati da tutti gli utenti del sistema

  • Chiamare la funzione MsiEnumPatchesEx .
    • Usare NULL per il valore del parametro szProductCode .
    • Usare "s-1-1-0" per il valore del parametro szUserSid .
    • Usare "MSIINSTALLCONTEXT_ALL" per il valore del parametro dwContext .

Per enumerare le patch applicate per tutti i prodotti annunciati o installati da tutti gli utenti del sistema

  1. Chiamare la funzione MsiEnumProductsEx .

    • Usare NULL per il valore del parametro szProductCode .
    • Usare "s-1-1-0" per il valore del parametro szUserSid .
    • Usare "MSIINSTALLCONTEXT_ALL" per il valore del parametro dwContext .

    La funzione fornisce un codice prodotto, un contesto utente e un contesto di installazione per ogni applicazione trovata.

  2. Per ogni applicazione enumerata nel passaggio 1, chiamare MsiEnumPatchesEx per enumerare le patch.

    Usare i codici prodotto, i contesti utente e i contesti di installazione ottenuti da MsiEnumProductsEx per i valori di szProductCode, szUserSid e dwContext e ogni chiamata di funzione MsiEnumProductsEx .

Acquisizione delle informazioni sul prodotto

Usare la funzione MsiGetProductInfoEx per ottenere informazioni sulle applicazioni annunciate o installate nel sistema e sulle proprietà che è possibile recuperare. Questa funzione può ottenere informazioni per un'istanza di un'applicazione installata con un account utente diverso dall'utente corrente, ma non può eseguire una query su un'istanza di un prodotto annunciato in un contesto non gestito per utente per un account utente diverso dall'utente corrente.

È possibile specificare il contesto di installazione e il contesto utente per limitare le informazioni per le applicazioni installate in un contesto specifico. Usare il parametro dwContext per specificare il contesto di installazione da trovare. È possibile specificare solo uno dei possibili contesti di installazione. Usare il parametro szUserSid per specificare il contesto utente delle applicazioni da trovare.

Recupero delle informazioni sulle patch

Un'applicazione può chiamare la funzione MsiGetPatchInfoEx per richiedere informazioni sull'applicazione di una patch a un'istanza specificata di un prodotto. Le proprietà, ad esempio LocalPackage, Transforms e State , possono essere recuperate usando questa funzione. Non tutti i valori delle proprietà sono sicuramente disponibili per le applicazioni non gestite per utente se l'utente non è attualmente connesso al computer. È possibile specificare solo uno dei possibili contesti di installazione.

È possibile specificare il contesto di installazione e il contesto utente per limitare le informazioni alle patch applicate alle applicazioni installate in un contesto specifico. Usare il parametro dwContext per specificare il contesto di installazione da trovare. È possibile specificare solo uno dei possibili contesti di installazione. Usare il parametro szUserSid per specificare il contesto utente delle applicazioni da trovare.

Recupero delle informazioni sullo stato del componente

Le applicazioni possono chiamare la funzione MsiQueryComponentState per ottenere lo stato installato per un componente. Questa funzione determina se il componente viene installato localmente o installato per l'esecuzione dall'origine. La funzione può eseguire una query per un componente di un'istanza di un'applicazione installata in account utente diversi dall'utente corrente, purché il prodotto non venga annunciato nel contesto non gestito per utente per un account utente diverso dall'utente corrente.

È possibile specificare un contesto di installazione e un contesto utente per ottenere lo stato dei componenti per le applicazioni installate in un contesto specifico. Usare il parametro dwContext per specificare il contesto di installazione da trovare. È possibile specificare solo uno dei possibili contesti di installazione. Usare il parametro szUserSid per specificare il contesto utente delle applicazioni da trovare.

Recupero delle informazioni sullo stato delle funzionalità

Le applicazioni possono chiamare la funzione MsiQueryFeatureStateEx per ottenere lo stato installato per una funzionalità del prodotto. Questa funzione determina se la funzionalità viene annunciata, installata in locale o installata per l'esecuzione dall'origine. La funzione può essere usata per eseguire query su qualsiasi funzionalità di un'istanza di un'applicazione installata nell'account computer o in qualsiasi contesto nell'account utente corrente o nel contesto gestito per utente in qualsiasi account utente diverso dall'utente corrente. Questa funzione non può eseguire query per un'applicazione installata nel contesto non gestito per utente per un account utente diverso dall'utente corrente. È possibile specificare solo uno dei possibili contesti di installazione.

È possibile specificare un contesto di installazione e un contesto utente per ottenere lo stato delle funzionalità per le applicazioni installate in un contesto specifico. Usare il parametro dwContext per specificare il contesto di installazione da trovare. È possibile specificare solo uno dei possibili contesti di installazione. Usare il parametro szUserSid per specificare il contesto utente delle applicazioni da trovare.