带有凭据的System.Process()

时间:2018-02-23 19:14:10

标签: c#

我一直在努力让这个工作整个上午。

这些答案对我没有任何帮助..

和10个更相似的那些。我已经在所有这些帖子中尝试了答案,但没有一个对我有用。

我正在尝试使用管理员凭据开发在远程计算机上运行程序的可执行文件。

我没有使用Visual Studio,我只是使用.Net版本4.0.30319 csc.exe进行编译。

      Process process = new Process();
      string pw = "pass";
      SecureString password = new SecureString();
      for (int i = 0; i < pw.Length; i++){
        password.AppendChar(pw.ToCharArray()[i]);
      }
      password.MakeReadOnly();

      var processInfo = new ProcessStartInfo(@"my_program.exe");
      // not working
      // processInfo.WorkingDirectory = @"C:\Users\myuser\Desktop";          
      // not working
      processInfo.WorkingDirectory = @"\\remote\Apps";

      // credentials
      processInfo.UserName = "admin_username";
      processInfo.Password = password;
      processInfo.Domain = "WORK_DOMAIN";
      processInfo.UseShellExecute = false;
      //

      try{
        Process.Start(processInfo);
      }catch (Exception ex){
        MessageBox.Show(ex.Message.ToString(),"Error");
      }

按原样运行,系统找不到指定的文件

但是,当我注释掉凭证时,程序会成功打开。

“admin_user”拥有该共享的所有访问权限。

0 个答案:

没有答案