我正在使用下面的代码在远程机器上启动一个进程。它确实启动了该过程,但它在 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();
}
}