以下是该方案。
如何从Bootstrapper.exe运行“JOHN”下的Application.exe,即使它是由“ALEX”启动的。 请注意,Application.exe无法识别“JOHN”的密码以模拟JOHN用户。
答案 0 :(得分:1)
在JOHN启动的进程中托管WCF服务(可能将其放在启动文件夹中)。
使用命令告知ALEX进程启动哪个进程,从ALEX进程调用WCF服务 从WCF服务启动该进程,它将作为JOHN运行。
答案 1 :(得分:0)
我为我糟糕的英语道歉。也许我错了你...编译它,并将结果复制到“C:\ test”目录。现在运行它。
using System;
using System.Text;
using System.Diagnostics;
using System.Security;
using System.Reflection;
using System.IO;
namespace ConsoleApplication6 {
class Program {
unsafe static void Main(string[] args) {
Process process = new Process();
String dir = Path.GetDirectoryName(typeof(Program).Assembly.Location);
String txtFile = Path.Combine(dir, "example.txt");
if (!File.Exists(txtFile)) {
StreamWriter sw = File.CreateText(txtFile);
sw.Close();
sw.Dispose();
}
ProcessStartInfo info = new ProcessStartInfo();
info.Domain = "myDomainName";
info.UserName = "userName";
String pass = "userPassword";
fixed (char* password = pass) {
info.Password = new SecureString(password, pass.Length);
}
// Will be run notepad.exe
info.FileName = Environment.ExpandEnvironmentVariables(@"%winDir%\NOTEPAD.EXE");
// in notepad.exe will be open example.txt file.
info.Arguments = txtFile;
info.LoadUserProfile = false;
info.UseShellExecute = false;
info.WorkingDirectory = dir;
process.StartInfo = info;
process.Start();
}
}
}
此致