2011-07-25 16 views
1

runasをパスワードの入力を求めずに自分のコードの中で使用するには?パスワードの入力を求めずにrunasを使用するには?

SHELLEXECUTEINFO info = {0}; 
    info.cbSize = sizeof(SHELLEXECUTEINFO); 
    info.fMask = SEE_MASK_NOCLOSEPROCESS; 
    info.lpFile = _T("IECapt.exe");  
    info.lpVerb = "runas"; 
    info.lpParameters = _T("test"); 

    info.nShow = SW_HIDE; 

    if (ShellExecuteEx (&info)) 
    { 
     WaitForSingleObject (info.hProcess, INFINITE); 
    } 
+0

システムは、プログラムを実行しようとするユーザーのパスワードをどのように知っていますか? – sharptooth

+0

@sharptoothアカウントがローカルの場合、パスワードは必要ありません。しかし、私は本当の答えはシステムサービスを通して仲介することだと思います。 Cygwin SSHDの実装は、Vista/7サポートのノートを調べる価値があります。 –

+0

アプリケーションが管理者権限で実行され、現在のユーザーが管理者でない場合は、パスワードを入力する必要があります。さもなければ、定期的なUACプロンプトは高度を求めるでしょう。 – Ajay

答えて

0

ユーザーとパスワードを知っている場合は、CreateProcessAsUserを使用できます。しかし、CreateProcessとShellExecuteは別のことをしていることに注意してください。

LogonUser [Ex] + ImpersonateLoggedOnUser + ShellExecuteEx + RevertToSelfを使用することもできますが、これが機能するかどうかはわかりません。

関連する問題