我正在使用以下代码在远程计算机上启动进程。它确实启动了该过程,但它在Admin用户下运行,而不是在登录的当前用户下运行。我需要当前用户能够与该程序进行交互。如果我在我的代码而不是管理员中使用他们的凭证,那么我将拒绝访问。如何指定在用户“JohnDoe”下运行?我知道PSSuite是一个选项,但如果可能的话我宁愿使用ManagementScope类。
class Program
{
static void Main(string[] args)
{
try
{
object[] theProcessToRun = { "notepad.exe" };
ConnectionOptions theConnection = new ConnectionOptions();
theConnection.Username = @"MyDomain\Admin";
theConnection.Password = "mypassword";
ManagementScope theScope = new ManagementScope("\\\\" + "BMBM14" + "\\root\\cimv2", theConnection);
ManagementClass theClass = new ManagementClass(theScope, new ManagementPath("Win32_Process"), new ObjectGetOptions());
theClass.InvokeMethod("Create", theProcessToRun);
Console.WriteLine("Success");
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
Console.ReadLine();
}
Console.ReadLine();
}
}