以另一个用户来运行程序

背景:
有一条case需要测试non-admin用户下运行软件产生的event信息。 由于Automation的大job是在admin用户下运行的,因此需要切换到non-admin用户,而这无论是在WTT中还是.NET中切换用户都是比较困难的。因此需要采用run as的策略,也就是在当前的admin用户下,通过code来使得所测软件在non-admin用户下运行。

下面这段代码实现了在指定的用户下运行某程序。可以从config文件中读取指定的用户。

注意:指定用户的密码不能为空,否则会有异常抛出。

 public static bool LauchMontanaBrt(string inUserName,string inPassWord)
        {
            try
            {
                Process MBRTProcess = new Process();
                MBRTProcess.StartInfo.UserName = inUserName;
                string strPWD = inPassWord;
                SecureString password = new SecureString();
                foreach (char c in strPWD.ToCharArray())
                {
                    password.AppendChar(c);
                }
                MBRTProcess.StartInfo.Password = password;
                MBRTProcess.StartInfo.WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory;
                MBRTProcess.StartInfo.FileName = "xxx.exe";
                MBRTProcess.StartInfo.Arguments = "/run /wu";
                MBRTProcess.StartInfo.UseShellExecute = false;
                MBRTProcess.Start();
                return true;
            }
            catch(Exception error)
            {
                Console.writeline(error.Message);
                return false;
            }
        }

转自:http://blog.sina.com.cn/s/blog_457b98580100az02.html

原文地址:https://www.cnblogs.com/oracleblogs/p/3986744.html