ChangeServiceConfig problème en définissant les informations d'identification d'ouverture de session

StackOverflow https://stackoverflow.com/questions/155695

  •  03-07-2019
  •  | 
  •  

Question

J'ai ce problème étrange - J'appelle ChangeServiceConfig sur un service nouvellement installé (je CreateService moi-même) afin de fournir les informations d'identification de connexion, mais function réussit (retourne TRUE), si j'essaie de démarrer le service, il échoue avec un 1069 (échec de la connexion). Si je vais dans le gestionnaire de service et que je modifie les informations d'identification à la main (je peux voir que le nom d'utilisateur est correct, mais bien sûr, je ne peux pas voir le mot de passe), alors tout va bien et tout va bien.

L'appel lui-même est trivial:

ChangeServiceConfig (hService, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, NULL, NULL, NULL, strUser, strPassword, NULL);

Avez-vous une idée de l'endroit où je devrais chercher et de ce qui pourrait ne pas être faux?

Merci d'avance.

Était-ce utile?

La solution

Le compte d'utilisateur doit explicitement disposer des droits lui permettant de se connecter en tant que service ( SeServiceLogonRight ). De nombreux utilisateurs, y compris les administrateurs informatiques, peuvent ne pas avoir cet indicateur défini et vous devrez peut-être le configurer manuellement. Le panneau de configuration des services Windows s’effectue silencieusement dans les coulisses lorsque vous l’utilisez pour configurer des services.

J'ai également de vagues souvenirs embrumés sur la nécessité de qualifier complètement le nom d'utilisateur. Il doit être au format DOMAIN \ Nom d'utilisateur - S'il s'agit d'un compte local, vous devez spécifier . \ Nom d'utilisateur ou rechercher le nom de l'ordinateur et utiliser MACHINENAME \ Nom d'utilisateur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top