2 votes

Faites en sorte qu'un programme s'exécute au démarrage de Windows une seule fois

Nous avons un programme qui fonctionne sur un serveur et qui devrait toujours être en cours d'exécution, mais il est important que seule une instance de celui-ci soit en cours d'exécution. Nous avons ajouté une clé de registre dans 'HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run' afin qu'il s'exécute au démarrage.

Cependant, nous rencontrons un problème lorsque plusieurs utilisateurs se connectent au serveur via Bureau à distance - une instance démarre pour chaque utilisateur. Comment pouvons-nous faire en sorte qu'il démarre une seule fois, peu importe le nombre d'utilisateurs connectés?

0voto

CrashBandicoot Points 214

Merci à @DavidPostill de m'avoir guidé dans la bonne direction.

J'ai créé un fichier batch comme suggéré, en utilisant la question suivante sur stackoverflow comme base : https://stackoverflow.com/questions/162291/how-to-check-if-a-process-is-running-via-a-batch-script

Voici ce que j'ai trouvé :

SETLOCAL EnableExtensions
set EXE=MyProgram.exe
FOR /F %%x IN ('tasklist /NH /FI "IMAGENAME eq %EXE%"') DO IF %%x == %EXE% goto FOUND
start C:/path/to/MyProgram.exe
:FOUND

J'ai ensuite modifié l'entrée du registre pour pointer vers ce fichier batch plutôt que vers l'exécutable lui-même.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X