2008-09-15 11 views
0

Windowsサービスをリモートコンピュータにインストールする必要があるため、CreateService()とwinapiの他のサービス機能を使用します。私は、アクセスが必要なマシンの管理者パスワードとユーザー名を知っています。リモートマシンへのアクセスを得るために、私はこのようなの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

OK、問題は解決しました(実際はあまり良くはありませんが、問題ありません)。私はWNetAddConnection()を使ってリモートマシン上のipc $に行きました。