Ho creato un pacchetto di Windows Installer utilizzando WiX 3.6 che incorpora un'azione personalizzata C#.WiX, UAC, azione personalizzata gestita e imitazione
In questa fase, l'installazione richiede che
- Il programma di installazione essere eseguito utilizzando un account di amministratore locale specifico (in questo caso, l'account di installazione di SharePoint, che è un amministratore locale) Controllo account
- utente essere disabilitato
Non esiste un modo per ignorare il requisito n. 1, perché l'azione gestita può eseguire solo determinati passaggi se viene eseguita nel contesto dell'account di installazione di SharePoint.
Vorrei rimuovere il requisito n. 2 e lasciare che il programma di installazione funzioni correttamente anche se UAC è abilitato.
Ho studiato il problema in modo piuttosto estensivo, ma non riesco ancora a farlo funzionare. Ho impostato InstallScope = "perMachine" nel mio pacchetto, che sembra richiedere correttamente l'elevazione UAC, ma il programma di installazione non riesce ancora con il famigerato errore 2869.
Il problema principale è che la mia azione personalizzata è configurata con Impersonate = "sì" perché deve essere eseguito nel contesto dell'utente corrente, non nell'account dell'amministratore locale. Quando eseguo una ricerca online, quasi tutte le "correzioni" puntano a Impersonate = "no" nell'azione personalizzata, ma non è un'opzione per me.
La mia domanda è: esiste un modo per eseguire un'azione gestita personalizzata con l'identità dell'utente corrente senza che UAC sia completamente disabilitato?
Amore una risposta a questo. –
Sto provando a fare la stessa cosa. Il modo in cui sto cercando di aggirare l'ostacolo è la creazione di un file EXE che ha privilegi di amministratore necessari nel app.manifest (http://stackoverflow.com/questions/3915370/impersonating-in-net-using-process-start-and -uac/3915492 # 3915492). Quindi chiamo EXE come azione personalizzata differita di tipo 2 che impersona l'utente (http://stackoverflow.com/a/8828776/1203288). Tuttavia, questo funziona sulla mia macchina, ma sto riscontrando problemi su altre macchine: non è nemmeno in esecuzione su altre macchine purché sia richiesto admin nell'app.manifest. Spero che questo ti dia un buon inizio. – bsara