私はWMI to start a process on a remote machineを使用しています。プロセスを作成するための呼び出しはすぐに戻り、リモート・マシン上のプロセスのIDも取得します。リモートコンピュータ上のプロセスのWaitForExit
私はリモートプロセスが完了するのを待っています。 1つのオプションは、指定されたIDを持つリモートマシン上のプロセスがまだ存在するかどうかをポーリングすることです。
しかし、これを実現するためのより良い方法があるのだろうか、おそらくネイティブのWinAPI関数を使用しているのだろうかと思っていましたか?ただ、追加情報については、これは私が現在、リモートプロセスを開始するために使用していたコード
されています:
ConnectionOptions connOptions = new ConnectionOptions();
connOptions.Impersonation = ImpersonationLevel.Impersonate;
connOptions.EnablePrivileges = true;
connOptions.Username = domainUserName;
connOptions.Password = password;
ManagementScope manScope = new ManagementScope(String.Format(@"\\{0}\ROOT\CIMV2", host), connOptions);
manScope.Connect();
ObjectGetOptions objectGetOptions = new ObjectGetOptions();
ManagementPath managementPath = new ManagementPath("Win32_Process");
ManagementClass processClass = new ManagementClass(manScope, managementPath, objectGetOptions);
ManagementBaseObject inParams = processClass.GetMethodParameters("Create");
inParams["CommandLine"] = commandLine;
ManagementBaseObject outParams = processClass.InvokeMethod("Create", inParams, null);
wWatcherとMBOobjを「使用」ステートでラップする必要があります – Simon