2008-09-15 190 views
0

我需要在多臺計算機上遠程安裝windows服務,所以我使用了winapi的CreateService()和其他服務功能。我知道我需要訪問的機器的管理員密碼和用戶名。爲了訪問遠程計算機模仿我調用進程的LogonUser與幫助是這樣的:遠程安裝windows服務

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

所以,我訪問機器的域名,但某些計算機是出域。在超出域的機器上,此代碼不起作用。有沒有辦法在域外訪問機器上的服務管理器?

回答

2

您可以這樣做,該帳戶需要存在於遠程計算機上,並且您需要在LogonUser調用中使用域名的計算機名稱。

0

爲什麼不使用SC內置命令來滾動自己?

0

好的,問題解決了(不是很好,但確定)。我在遠程機器上使用WNetAddConnection()到ipc $。