2009-05-11 11 views
4

J'ai remarqué que certaines applications (comme la vapeur) sont capables de démarrer/arrêter les services en tant qu'utilisateur normal sans invoquer le contrôle uac. Est-ce que quelqu'un sait comment le faire?démarrer le service sans invoquer uac

OS: Vista/Win 7 Visual Studio 2005 C++

. Edit: Je jouais avec le service de vapeur la nuit dernière essayant de comprendre comment c'est différent. Si je mets mon exe de service où la vapeur est elle a lancé bien avec uac (en utilisant sc.exe) mais si j'ai utilisé la vapeur exe où le mien est-il ne fonctionne pas. En regardant dans le registre à l'information de service, j'ai trouvé que la vapeur avait une partie des permissions supplémentaires. Qu'est-ce que cela signifie et comment le définissez-vous?

.

Edit 2: Vous devez modifier les droits d'accès des utilisateurs du service: http://msdn.microsoft.com/en-us/library/ms684215(VS.85).aspx

Répondre

6

La capacité de (ou arrêter) un service est contrôlé par l'ACL sur le service. Si vous accordez aux utilisateurs interactifs le droit de démarrer votre service, ils peuvent démarrer votre service.

Tout est dans la façon dont vous définissez votre service lorsque vous l'avez installé.

De toute évidence, vous devrez utiliser les API de service Windows (OpenSCManager/OpenService/StartService) pour démarrer le service.

+0

Merci, va regarder dans tout ça. – Lodle

+0

Essayé la nuit dernière et il ne fonctionne pas :( – Lodle

+0

Quel est l'ACL sur votre service alors? sc sdshow