以另一个用户来运行程序

背景:
有一条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

时间: 2024-08-26 02:42:09

以另一个用户来运行程序的相关文章

以不同用户身份运行程序(使用CreateProcessAsUser函数)cool

http://blog.sina.com.cn/s/blog_65977dde0100s7tm.html -------------------------------------------------- 以不同用户身份运行程序 (2011-07-09 09:15:25) 一直想方便的处理CCProxy代理的帐号管理,所以梦想做一个比较好的管理工具.但一个最麻烦的问题就是帐号的更新,CCProxy有一个网页管理功 能,可以加帐号,但加的帐号就是不可以立即更新.中午上网的时候发现CCProxy有

rc.local里指定用户来运行程序

CentOS 6.5测试发现,rc.local里不能使用sudo,可以使用su 但有个前提条件,指定的用户可以不用建立家目录,但必须是可以登录的 [[email protected] ~]# vim /etc/rc.local #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if yo

root用户无法运行tor解决办法(The tor browser bundle should not be run as root )

遇到这个问题,有两个解决办法: 1.创建一个用户,运行tor: 2.编辑"start-tor-browser"文件,找到下面语句,删除或注释掉即可运行: #if [ "`id -u`" -eq 0 ]; then # complain "The Tor Browser Bundle should not be run as root. Exiting." # exit 1 #fi

1.3—一个典型的JAVA程序的编写和运行过程

JAVA语言应用范围 桌面应用编程 WEB客户端编程 WEB服务器编程 手机编程 机器人编程 第一个JAVA程序 JAVA开发环境搭建 下载:Download J2SDK (Java  2 Software  Development Kit) from http://java.sun.com 安装:run the executable(跟普通软件安装一样,点击下一步就OK!)  环境变量配置: 环境变量(就是为相关命令提供一个路径信息,告诉他到哪里去找相关文件信息): 设置: 新增系统环境变量J

黑马程序员——java——获取一个应用程序运行的次数,如果超过5次,给出使用次数已到请注册的提示,并不要再运行程序

获取一个应用程序运行的次数,如果超过5次,给出使用次数已到请注册的提示,并不要再运行程序 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Properties; public class Test5 { public static void main(String[] args) th

在ASP.NET MVC中使用NuGet添加SignalR类库之后,再次运行程序时,它出现了一个异常:

自从在ASP.NET MVC中使用NuGet添加SignalR类库之后,再次运行程序时,它出现了一个异常: Server Error in '/' Application. The following errors occurred while attempting to load the app.- No assembly found containing an OwinStartupAttribute.- No assembly found containing a Startup or [

Linux环境下部署完JDK后运行一个简单的Java程序

前言 前一篇文章详细讲解了如何在Windows环境下安装虚拟机+Linux系统,并且成功部署了JDK. 不过部署完JDK之后,我们判断部署是否成功的依据是看"java -version"命令是否有正确的内容打印,也许这并不具备太大的说服力.可能能够运行起一个正确的java程序来,不管从感性角度还是理性角度来说,都会有一个更好的认识. 所以本文写一段很简单的java代码,并且在Linux环境下编译运行,以证明JDK部署得确实没有问题. 代码验证JDK部署是否正确 1.级联建立两个目录 首

[C#]只能运行程序的一个实例

C#实现只能运行程序的一个实例(添加在窗体的Load事件中) 1. 根据进行名限制只能运行程序的一个实例 System.Diagnostics.Process process = System.Diagnostics.Process.GetCurrentProcess(); System.Diagnostics.Process[] processList = System.Diagnostics.Process.GetProcessesByName(process.ProcessName); 

linux编程C/C++如何自动打开一个终端并且运行新程序

做linux开发过程中,需要在某个程序运行到特定过程中打开一个新的终端界面,运行一个新的程序,具体的实现过程非常简单. 首先,system()用来在C/C++代码中实现系统命令,而gnome-terminal -e ./test用来打开当前目录的测试程序test. 在自己代码中添加如下一句命令: system("gnome-terminal -e ./test"); 如此可以实现在代码中打开一个终端,并且运行一个新程序. linux编程C/C++如何自动打开一个终端并且运行新程序,布布