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