Domanda

Ho questo strano problema: sto chiamando ChangeServiceConfig su un servizio appena installato (io CreateService da solo) per fornire le credenziali di accesso, ma mentre la funzione ha esito positivo (restituisce VERO), se provo ad avviare il servizio, non riesce con un 1069 (accesso non riuscito). Se entro nel gestore dei servizi e modifico manualmente le credenziali (vedo il nome utente corretto, ma ovviamente non riesco a vedere la password), va tutto bene e inizia bene.

La chiamata stessa è banale:

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

Qualche idea su dove dovrei cercare e cosa potrebbe esserci di sbagliato?

Grazie in anticipo.

È stato utile?

Soluzione

L'account utente deve disporre esplicitamente dei diritti per accedere come servizio ( SeServiceLogonRight ). Molti utenti, inclusi gli amministratori di computer, potrebbero non avere questo flag impostato e potrebbe essere necessario impostarlo manualmente. Il pannello di controllo dei servizi di Windows lo fa silenziosamente dietro le quinte quando lo usi per configurare i servizi.

Ho anche alcuni vaghi ricordi nebbiosi sulla necessità di qualificare completamente il nome utente. Deve essere nel formato DOMAIN \ Username - Se si tratta di un account locale è necessario specificare . \ Username o scoprire il nome della macchina e utilizzare MACHINENAME \ Username

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top