Linee guida per i pacchetti

Poiché controllo dell'account utente in Windows Vista limita i privilegi durante un'installazione, gli sviluppatori dei pacchetti di Windows Installer non devono presupporre che l'installazione abbia sempre accesso a tutte le parti del sistema.

Un pacchetto del programma di installazione che può essere distribuito correttamente agli utenti standard tramite Criteri di gruppo dovrebbe nella maggior parte dei casi usare anche controllo dell'account utente in Windows Vista. Le eccezioni a questo problema possono verificarsi se la tabella InstallUISequence contiene l'azione LaunchConditions o la tabella LaunchCondition contiene una condizione basata sulla proprietà Privileged. Gli sviluppatori di pacchetti di Windows Installer devono pertanto rispettare le linee guida seguenti per garantire che il pacchetto funzioni con controllo dell'account utente e Windows Vista.

  • Quando si include una condizione del contesto di installazione con un'azione nella tabella InstallUISequence, usare un'istruzione condizionale basata sulla proprietà Privileged. Non usare una condizione basata sulla proprietà AdminUser .
  • Quando si include il contesto di installazione con le condizioni di avvio dell'installazione, usare un tipo di azione personalizzato 19 nella tabella InstallExecuteSequence e impostare l'azione personalizzata condizionale sulla proprietà Privileged. Non utilizzare un'azione nella tabella LaunchCondition con una condizione basata sulla proprietà AdminUser o privileged.
  • Per leggere o modificare la configurazione di sistema, usare un'azione personalizzata di esecuzione posticipata nella tabella InstallExecuteSequence. Non usare azioni personalizzate di esecuzione immediata nella tabella InstallUISequence per modificare la configurazione di sistema.
  • Per modificare parti del sistema che non sono specifiche dell'utente, usare un'azione personalizzata posticipata nella tabella InstallExecuteSequence. È necessario includere il bit msidbCustomActionTypeNoImpersonate nel tipo di azione personalizzato.
  • Omettere Bit 3 dal valore della proprietà Riepilogo conteggio parole per indicare che il pacchetto può essere elevato. Non includere questo bit a meno che non siano necessari privilegi elevati per installare questo pacchetto.
  • Includere un manifesto con il livello di esecuzione richiesto dell'applicazione.
  • Includere un certificato nella tabella MsiPatchCertificate del pacchetto originale e firmare tutte le patch con lo stesso certificato.
  • Se sono necessari privilegi elevati per installare un pacchetto di Windows Installer, l'autore del pacchetto deve includere l'attributo ElevationShield per il controllo PushButton usato per avviare l'installazione. Verrà visualizzato un avviso all'utente che facendo clic sul pulsante verrà visualizzata la finestra di dialogo Controllo dell'account utente che richiede l'autorizzazione dell'amministratore per continuare l'installazione.
  • Impostare la proprietà MSIDEPLOYMENTCOMPLIANT su 1 per indicare a Windows Installer che il pacchetto è stato creato e testato per essere conforme all'interfaccia utente in Windows Vista. Se questa proprietà non è impostata, il programma di installazione determina se il pacchetto è conforme al controllo dell'account utente.

All'esterno di Criteri di gruppo, è possibile usare il controllo seguente per la conformità dell'account utente in Windows XP.

Per verificare la conformità del controllo dell'account utente all'esterno di Criteri di gruppo

  1. Accedere al computer come amministratore.

  2. Annunciare il pacchetto per un'installazione per computer:

    msiexec /jm package.msi

  3. Disconnettersi dal computer.

  4. Accedere al computer come utente standard.

  5. Tentare di installare il pacchetto annunciato:

    msiexec /i package.msi

  6. Nella maggior parte dei casi, se l'installazione ha esito positivo, il pacchetto è conforme al controllo dell'account utente.

  7. Impostare la proprietà MSIDEPLOYMENTCOMPLIANT nel pacchetto su 1.

  8. Testare l'installazione corretta del pacchetto usando Windows Vista.