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?

È stato utile?

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.

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