我正在使用WMI to start a process on a remote machine。創建進程的調用會立即返回,並且我還會獲得遠程計算機上進程的標識。WaitForExit用於遠程計算機上的進程
我想等待遠程過程完成。一種選擇是查詢具有給定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 2011-09-15 00:40:35