1

以下のコードを使用して、リモート マシンでプロセスを開始しています。プロセスは開始されますが、ログインしている現在のユーザーではなく、管理者ユーザーの下で実行されています。プログラムと対話できるようにするには、現在のユーザーが必要です。管理者の代わりに自分のコードで資格情報を使用すると、アクセスが拒否されます。ユーザー「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