加载中…
个人资料
Ying
Ying
  • 博客等级:
  • 博客积分:0
  • 博客访问:44,381
  • 关注人气:5
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

C#中RunAs的实现

(2008-10-07 15:26:35)
标签:

c

runas

杂谈

分类: .NET

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

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有