Sto installando un servizio Windows utilizzando WiX. Come posso far funzionare il servizio nel contesto dell'utente Windows che esegue il programma di installazione?WiIn ServiceInstall - impostazione del servizio da eseguire come utente corrente di Windows
risposta
È necessario disporre sia del nome account sia della password per l'utente per il quale si desidera eseguire il servizio. Sono stato in grado di farlo aggiungendo un'interfaccia utente personalizzata al mio programma di installazione chiedendo un nome utente e una password, quindi utilizzando i valori forniti per gli attributi Account e Password nell'elemento ServiceInsall.
Si noti che per qualsiasi account utilizzato per l'esecuzione del servizio sarà necessario privilegiare il servizio Accesso come. Questo non è concesso agli utenti per impostazione predefinita. Sono stato in grado di utilizzare l'elemento User dallo schema UtilExtension per aggiungere questo privilegio all'utente. L'aggiunta del privilegio all'utente avrà esito positivo solo se l'utente che esegue il programma di installazione è un amministratore.
Ecco il codice che ho usato. SERVICECREDENTIALS_USERLOGIN e SERVICECREDENTIALS_PASSWORD sono le proprietà popolate dall'interfaccia utente personalizzata.
<Component Id="ServiceEXE" Guid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx">
<File Id="ServiceEXE" Name="YourService.exe" DiskId="1"
Source="path\to\YourService.exe" KeyPath="yes" />
<util:User Id="UpdateUserLogonAsService" UpdateIfExists="yes" CreateUser="no" Name="[SERVICECREDENTIALS_USERLOGIN]"
LogonAsService="yes" />
<ServiceInstall Id="ServiceInstall" Type="ownProcess" Vital="yes" Name="YourService"
DisplayName="Your Service" Description="Your Service description"
Start="auto" Account="[SERVICECREDENTIALS_USERLOGIN]" Password="[SERVICECREDENTIALS_PASSWORD]"
ErrorControl="normal" Interactive="no" />
<ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="YourService" Wait="yes" />
</Component>
puoi aiutarmi come posso avere 2 componenti 1 per l'autenticazione SQL e 1 per l'autenticazione di Windows, ad esempio come aggiungere condizioni. –
Funziona questo codice? impostando il privilegio LogonAsService * e * l'identità del servizio non sembra essere pianificata in modo sequenziale nel pacchetto .msi risultante. Per questo motivo, l'installazione fallisce ... O mi sto perdendo qualcosa? –
- 1. Servizio Windows da eseguire costantemente
- 2. Quartz.Net Scheduler da eseguire come servizio Windows
- 3. PSCredentials da utente corrente
- 4. Come eseguire l'applicazione console dal servizio Windows?
- 5. Autenticazione di Windows: acquisizione del nome utente corrente
- 6. Progetto di installazione servizio Windows - eseguire il servizio come amministratore
- 7. wix HeatDirectory ServiceInstall
- 8. Impostazione per Tomcat servizio in Windows XP
- 9. C# Concessione dell'autorizzazione "Accedi come servizio" a un utente Windows
- 10. Come modificare il tipo di avvio del servizio Windows in un programma di installazione WiX
- 11. Screenshot del processo in Servizio Windows
- 12. Devo eseguire RavenDB come servizio Windows o tramite IIS?
- 13. install redis come servizio windows
- 14. Come ottenere il nome del servizio Windows da app.config
- 15. Come si interrompe un'applicazione del servizio Windows da un thread?
- 16. È possibile eseguire Orleans ospitato all'interno del servizio Windows
- 17. Come posso trovare la lingua corrente di Windows da cmd?
- 18. Come chiamare un servizio Windows da asp.net
- 19. Come eseguire il debug del servizio Web?
- 20. Come eseguire il debug del servizio WCF?
- 21. Come eseguire l'applicazione vNext da Windows PowerShell?
- 22. Come eseguire Python da Windows cmd
- 23. Ottieni il nome utente corrente di Windows in Silverlight
- 24. Modifica utente Servizio di Windows a livello di programmazione
- 25. Come modificare le credenziali utente del servizio Windows dalla riga di comando?
- 26. Esecuzione di Redis su Windows come servizio
- 27. Come ottenere l'ID utente corrente di Prestashop?
- 28. Aggiornamento del servizio Windows tramite Inno Setup
- 29. get Contesto utente corrente
- 30. C# file di configurazione del servizio Windows
Perché si desidera eseguire il servizio come utente corrente? Gran parte del servizio è in grado di essere eseguito quando non vi sono utenti connessi e di essere in grado di eseguire come LocalSystem per facilitare i diritti di amministrazione per l'eseguibile. Sono sicuro che hai una buona ragione ... –
Un motivo per cui lo avresti eseguito come utente particolare è che ha bisogno di una connessione al server SQL e il server SQL è configurato per utilizzare l'autenticazione di Windows ... è più facile non avere per aggiungere il "Servizio locale" all'elenco di utenti SQL. –