Frage

Ich muß remote Windows-Dienst auf Anzahl von Computern installiert werden, so dass ich Create () und andere Servicefunktionen von winapi. Ich weiß, dass Admin-Passwort und Benutzernamen für die Maschinen, die ich Zugang zu müssen. Um den Zugriff auf entfernte Computer zu verschaffen ich IMPERSONATE Prozesses mit Hilfe von Logonuser wie dieser Aufruf:

//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

So erhalte ich Zugang zu Maschine in einer Domäne, aber einige von Computern sind aus Domäne. Bei Maschinen, die aus Domäne dieser Code nicht funktioniert. Gibt es eine Möglichkeit Service-Manager auf der Maschine aus Domäne zugreifen?

War es hilfreich?

Lösung

Sie können es tun, das Konto muss auf dem entfernten Rechner existieren, und Sie müssen die Computernamen für die Domänennamen in den Logonuser Aufruf verwenden.

Andere Tipps

Anstatt Ihre eigenen Rollen, warum nicht nur den SC integrierte Befehl verwenden?

OK, Problem gelöst (nicht wirklich sehr gut, aber eher OK). Ich benutzte WNetAddConnection (), um ipc $ auf Remote-Rechner.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top