Installazione remota del servizio Windows
-
09-06-2019 - |
Domanda
Devo installare in remoto il servizio Windows su un numero di computer, quindi utilizzo CreateService() e altre funzioni di servizio di Winapi.Conosco la password dell'amministratore e il nome utente per le macchine a cui devo accedere.Per ottenere l'accesso alla macchina remota impersonerei il processo di chiamata con l'aiuto di LogonUser in questo modo:
//all variables are initialized correctly
int status = 0;
status = LogonUser(lpwUsername,
lpwDomain,
lpwPassword,
LOGON32_LOGON_NEW_CREDENTIALS,
LOGON32_PROVIDER_DEFAULT,
&hToken);
if (status == 0)
{
//here comes a error
}
status = ImpersonateLoggedOnUser(hToken);
if (status == 0)
{
//once again a error
}
//ok, now we are impersonated, do all service work there
Pertanto, ottengo l'accesso alla macchina in un dominio, ma alcuni computer sono fuori dominio.Su macchine fuori dominio questo codice non funziona.Esiste un modo per accedere a Service Manager su una macchina fuori dominio?
Soluzione
Puoi farlo, l'account deve esistere sul computer remoto ed è necessario utilizzare il nome del computer per il nome di dominio nella chiamata LogonUser.
Altri suggerimenti
Invece di eseguirne uno tuo, perché non utilizzare semplicemente il comando integrato SC?
OK, problema risolto (non proprio molto buono, ma piuttosto OK).Ho utilizzato WNetAddConnection() per ipc$ sul computer remoto.