J'installe un service Windows en utilisant WiX. Comment puis-je faire fonctionner le service dans le contexte de Windows User qui exécute le programme d'installation?WiX ServiceInstall - définition du service à exécuter en tant qu'utilisateur Windows en cours
Répondre
Vous devez avoir à la fois le nom du compte et le mot de passe de l'utilisateur pour lequel vous souhaitez exécuter le service. J'ai été en mesure d'accomplir cela en ajoutant une interface utilisateur personnalisée à mon installateur demandant un nom d'utilisateur et un mot de passe, puis en utilisant les valeurs fournies pour les attributs Compte et Mot de passe sur l'élément ServiceInsall.
Notez que, quel que soit le compte utilisé pour exécuter le service, le privilège d'ouverture de session doit être privilégié. Ceci n'est pas accordé aux utilisateurs par défaut. J'ai été capable d'utiliser l'élément User du schéma UtilExtension pour ajouter ce privilège à l'utilisateur. L'ajout du privilège à l'utilisateur ne réussit que si l'utilisateur exécutant le programme d'installation est un administrateur.
Voici le code que j'ai utilisé. SERVICECREDENTIALS_USERLOGIN et SERVICECREDENTIALS_PASSWORD sont les propriétés remplies à partir de l'interface utilisateur personnalisée.
<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>
pouvez-vous m'aider comment puis-je avoir 2 composants 1 pour l'authentification SQL et 1 pour l'authentification Windows, c'est-à-dire comment ajouter une condition. –
Ce code fonctionne-t-il? la définition des privilèges LogonAsService * et * l'identité du service ne semble pas être planifiée de manière séquentielle dans le package .msi résultant. Pour cette raison, l'installation échoue ... Ou est-ce que je manque quelque chose? –
- 1. Tomcat Journalisation en cours d'exécution en tant que service Windows
- 2. Vérifiez si le service est en cours d'exécution dans WiX
- 3. ruby en cours d'exécution en tant que programme exe Windows
- 4. ServiceInstall ou ServiceControl Problème
- 5. Communiquer avec le service en cours d'exécution
- 6. Puis-je exécuter un script Python en tant que service?
- 7. Comment puis-je exécuter une application CLI en tant que service Windows?
- 8. Meilleure méthode pour exécuter une application Java en tant que démon * nix ou service Windows?
- 9. Exécuter cronjob en tant qu'utilisateur connecté
- 10. Windows Service en cours d'exécution en tant qu'utilisateur connecté a des problèmes d'accès b/c de UAC
- 11. Plusieurs instances de même application en tant que service Windows?
- 12. Installer EXE en tant que service sur Windows 2008 Server
- 13. Windows Mobile - Programme Compact Framework en tant que service?
- 14. Définition des constantes prédéfinies en tant que
- 15. Publication du schéma en tant que problème de service wcf
- 16. Dossier de démarrage du fichier de commandes Windows lorsque 'Exécuter en tant qu'administrateur'
- 17. Hudson en cours d'exécution en tant que service ne démarre pas
- 18. WCF fonctionne en tant qu'application, mais pas en tant que service
- 19. SCardEstablishContext se bloque en tant que service
- 20. en cours d'exécution fichier bat en utilisant Windows Scheduler
- 21. Comment capturer l'écran en cours en tant qu'image?
- 22. Acquisition d'images Windows - Définition des propriétés du périphérique en C#
- 23. Installation d'un service NT multi-fichiers à l'aide de WiX (2.0)
- 24. Démarrage du service en tant qu'utilisateur sans mot de passe
- 25. Capture d'écran du processus sous Windows Service
- 26. Exécuter une chaîne en tant que commande en python
- 27. Démarrage de Tomcat avec débogage à distance (jdwp) lorsqu'il est installé en tant que service Windows
- 28. bash: Exécuter un autre programme dans le répertoire courant en cours d'exécution à partir du chemin
- 29. Wix: Arrêt d'un service Windows lors de la désinstallation
- 30. Comment puis-je vérifier si un service Windows est en cours
Pourquoi voudriez-vous exécuter le service en tant qu'utilisateur actuel? Une grande partie du but d'un service est de pouvoir s'exécuter lorsqu'il n'y a pas d'utilisateur connecté - et de pouvoir s'exécuter en tant que LocalSystem pour faciliter les droits d'administrateur de l'exécutable. Je suis sûr que vous avez une bonne raison ... –
Une raison pour laquelle vous l'exécutez en tant qu'utilisateur particulier est qu'il a besoin d'une connexion au serveur SQL et que le serveur SQL est configuré pour utiliser l'authentification Windows ... il est plus facile de ne pas avoir ajouter le "Service local" à la liste des utilisateurs SQL. –