2010-05-06 6 views
7

Ho un'applicazione che verrà distribuita come pacchetto MSI (creato in WiX).È possibile installare in Program Files con privilegi limitati?

Sto decidendo se specificare i privilegi o limited come richiesto per l'installazione.

L'applicazione non comprende nulla che richiede privilegi elevati, oltre il percorso di installazione predefinito, che è sotto Programmi.

Ora il problema:

  • Se specifico privilegi elevati, l'utente viene richiesto dal UAC per la password di amministratore durante l'installazione. Questo non è richiesto e impedisce l'installazione di utenti non amministratori.

  • Se specifico privilegi limitati, quindi l'utente è presentato con una finestra di dialogo per selezionare l'installazione posizione con Program Files essendo di default. Nel caso in cui non cambino il percorso di installazione (probabilmente il 95% degli utenti finali non lo farà), il programma di installazione non riuscirà con un messaggio che dovrebbe contattare l'amministratore o eseguire l'applicazione come amministratore. Se lanciano il programma di installazione come amministratore, possono installarlo in Program Files senza problemi, ma la maggior parte degli utenti probabilmente non saprà come avviare un programma di installazione come amministratore.

Posso potenzialmente impostare il percorso di installazione predefinito per es. C: \ Nome azienda \ Programma \, ma questo mi sembra non standard e la maggior parte degli utenti probabilmente non apprezzerà questo aspetto (probabilmente sono utilizzati per l'installazione in Program Files).

Come si fa a risolvere questo problema con l'installazione di applicazioni in account utente con limitazioni?

risposta

6

Il percorso alternativo si propone, direttamente fuori del C Drive, è probabile che richiedono anche privilegi elevati. Prima di Windows 7, suggerirei di utilizzare un'azione personalizzata anticipata per modificare la posizione predefinita per installazioni limitate. Disattivalo dalla proprietà Privileged (o eventualmente da AdminUser), verifica se è necessario impostare MSIUSEREALADMINDETECTION per il tuo caso e utilizzare qualcosa come [LocalAppDataFolder]Company\Product. Sfortunatamente questo approccio si tradurrà in un pacchetto che è difficile da installare per tutti gli utenti come si deve pre-elevare, e nel caso limitato potrebbero ancora selezionare una posizione di destinazione che richiede elevazione. Devono pre-elevare perché il pacchetto deve essere contrassegnato per non elevare.

Se è possibile destinare esclusivamente di Windows 7 e versioni successive, è possibile impostare in modo condizionale MSIINSTALLPERUSER per ignorare il percorso di installazione e l'obbligo di elevazione, e invece l'installazione per utente. In questo scenario, all'utente potrebbe essere chiesto se installare per tutti gli utenti (richiede elevazione) o solo per se stesso. Il pacchetto può essere contrassegnato per l'elevazione e l'impostazione MSIINSTALLPERUSER sostituirà quella e salterà il prompt UAC.

+1

No, la posizione alternativa non richiede privilegi elevati. Attualmente sto installando di default in C: \ Nome azienda \ Prodotto e il programma di installazione MSI è costruito con privilegi limitati e nessun UAC viene visualizzato, né alcuna finestra di errore. – Marek

+0

Questo suona come un ambiente personalizzato, ma va bene se sai che sarà sul posto dovunque il tuo prodotto sia installato. Il resto della risposta si applica; semplicemente ignorare il suggerimento limitato di posizione privilegiata. –

-2

Esegui prompt dei comandi (cmd) come amministratore.

Quindi utilizzare il comando msiexec per eseguire il file msi.

+0

Non posso chiedere all'utente finale di fare questo – Marek

+0

puoi chiedere all'utente di farlo ... per installare qualsiasi s/w si dovrebbero avere i privilegi di amministratore. Quindi non ha nulla di sbagliato nel chiedergli di farlo. Oppure puoi chiedere all'utente di accedere con le credenziali di amministratore e quindi installare s/w –

3

Probabilmente è più importante che il tuo software funzioni con i normali privilegi dell'utente - che vedo che hai citato non è un problema.

Non c'è niente di sbagliato nel chiedere i diritti di amministratore per installare qualcosa.

In entrambi i casi, l'utente avrà gli stessi dettagli poiché eseguono un account limitato per motivi di sicurezza o il software verrà installato dal reparto IT della propria azienda.