1

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

0 回答 0