2017-07-11 5 views
0

ネットワークサービスアカウントで子プロセスを開始しようとしていますが、ユーザー名とパスワードを正しく組み合わせることができません。コード:ネットワークサービスが "ユーザー名またはパスワードが間違っています"というメッセージが表示されるので、新しいプロセスを開始します。

var proc = new Process(); 
proc.StartInfo.UseShellExecute = false; 
proc.StartInfo.FileName = "Test2.exe"; 
proc.StartInfo.Arguments = args[0]; 
proc.StartInfo.Domain = "NT AUTHORITY"; 
proc.StartInfo.UserName = "NETWORK SERVICE"; 
proc.StartInfo.Password = new SecureString(); 
proc.Start(); 
+0

proc.StartInfo.Verb = "runas"で管理者として実行できます... –

答えて

1

急速なGoogle検索では、this pageが公開されました。特にこれらの方法で、あなたはWin32 APIのに依存する必要があります表示されます。

[DllImport("advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)] 
    private static extern bool LogonUser(string username, string domain, 
              string password, LogonType logonType, 
              LogonProvider logonProvider, 
              out IntPtr userToken); 


    [DllImport("advapi32.dll", SetLastError = true)] 
    static extern bool ImpersonateLoggedOnUser(IntPtr userToken); 

私はこのように、それは非常に奇妙な要件であるので、それがネットでこれを行うにはそれほど単純ではない理由は推測していますユーザーはWindowsサービスで使用する必要があります。これは実行コードの問題ではありません。

関連する問題