2009-10-09 13 views
6

Sto utilizzando Visual Studio 2008 per creare un pacchetto di installazione MSI. All'interno dell'installazione ho numerose azioni personalizzate. Nell'azione personalizzata OnAfterInstall tento di avviare un exe che viene distribuito dall'installazione. L'exe viene avviato correttamente, ma viene eseguito all'interno di un contesto di protezione di NT AUTHORITY \ SYSTEM (ovvero con i privilegi elevati concessi al processo di Windows Installer). In realtà ho bisogno che l'exe funzioni nel contesto di sicurezza dell'utente attualmente loggato che ha avviato l'installazione in primo luogo. Qualcuno sa come avviare l'exe in modo che funzioni in questo contesto 'ridotto'. Voglio davvero evitare di dover chiedere all'utente le proprie credenziali di accesso se possibile.Start exe dopo installazione msi ma utilizzando i privilegi utente correnti

risposta

2

È necessario utilizzare l'API di Servizi Desktop remoto: http://msdn.microsoft.com/en-us/library/aa383464%28v=VS.85%29.aspx. È disponibile a partire da WinXP.

Questa API consente di eseguire l'applicazione nel contesto di qualsiasi account utente connesso. È necessario essere in esecuzione come un SISTEMA per poterlo utilizzare. E tu sei. Ad esempio, è possibile enumerare le sessioni utilizzando WTSEnumerateSessions, quindi eseguire il token utente da WTSQueryUserToken ed eseguire l'applicazione utilizzando questo token.

Problemi correlati