在另一个用户上下文下以管理模式启动CMD.exe

时间:2016-12-23 14:10:06

标签: c# windows cmd

有人能告诉我我的尝试是否可能吗?

我的问题出现在Windows 10 (在Windows 7上,以下工作)

我想以编程方式创建一个在管理模式下启动的“CMD.exe”实例,我在创建CMD流程时指定管理员用户的详细信息。

我的最终结果总是一样的:

  1. 我可以创建CMD.exe进程
  2. 该进程的所有者是我在其下创建的管理员帐户(我可以通过任务管理器查看)
  3. 但是CMD.exe没有在管理模式下启动(这是我的问题)

    这是我的代码 - 非常感谢任何帮助(我花了很长时间看这个“)。我读过的任何其他文章都说明了如何以管理员身份创建流程但不在管理模式下运行在Windows 10上)

    ProcessStartInfo p = new ProcessStartInfo();
    
    p.WorkingDirectory = @"C:\Windows\System32";
    p.FileName = @"C:\Windows\System32\cmd.exe";
    
    p.UserName = "myUser";
    p.Domain = "myDomain";
    
    char[] password = { 'm', 'y', 'p', 'a', 's', 's'};
    
    SecureString adminpassword = new SecureString();
    foreach (char c in password)
      {
          adminpassword.AppendChar(c);
      }
    
    p.Password = adminpassword;
    p.UseShellExecute = false;
    p.Verb = "runas";
    Process.Start(p);
    

1 个答案:

答案 0 :(得分:0)

您是否尝试过添加应用程序清单:

<requestedExecutionLevel level="requireAdministrator" />  

似乎以管理员身份创建了一个流程,您需要成为管理员。

对不起,我在这里写道。我没有足够的评论声誉。