Pregunta

Tengo este extraño problema: estoy llamando a ChangeServiceConfig en un servicio recién instalado (I CreateService ) para proporcionar las credenciales de inicio de sesión, pero mientras La función tiene éxito (devuelve VERDADERO), si intento iniciar el servicio, falla con un 1069 (error de inicio de sesión). Si entro en el administrador de servicios y modifico las credenciales a mano (puedo ver que el nombre de usuario es correcto, pero por supuesto no puedo ver la contraseña), entonces todo está bien y comienza bien.

La llamada en sí es trivial:

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

¿Alguna idea sobre dónde debería estar mirando y qué podría estar mal?

Gracias de antemano.

¿Fue útil?

Solución

La cuenta de usuario debe tener derechos explícitos para iniciar sesión como un servicio ( SeServiceLogonRight ). Es posible que muchos usuarios, incluidos los administradores de computadoras, no tengan este indicador establecido, y es posible que deba configurarlo manualmente. El panel de control de servicios de Windows en realidad lo hace silenciosamente entre bambalinas cuando lo usas para configurar servicios.

También tengo algunos vagos recuerdos borrosos sobre la necesidad de calificar completamente el nombre de usuario. Debe tener el formato DOMINIO \ Nombre de usuario : si es una cuenta local, debe especificar . \ Nombre de usuario o averiguar el nombre de la máquina y usar MACHINENAME \ nombre de usuario

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top