在远程计算机上运行程序

时间:2013-01-13 14:34:10

标签: c# wmi remote-server

我有这段代码:

ConnectionOptions connOptions = new ConnectionOptions();
connOptions.Impersonation = ImpersonationLevel.Impersonate;
connOptions.EnablePrivileges = true;
ManagementScope manScope = new ManagementScope(String.Format(@"\\{0}\ROOT\CIMV2", sHost), 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"] = "notepad.exe";
ManagementBaseObject outParams = processClass.InvokeMethod("Create", inParams, null);

当我将sHost设置为我的本地IP地址时,它可以正常工作并打开记事本。 但是,当我将它设置为远程服务器时,没有任何反应。

(我能够连接到远程计算机并从我的应用程序中复制文件 - 这只是为了尝试远程运行。防火墙也已配置为WMI)。

有点没有更多想法......

感谢。

1 个答案:

答案 0 :(得分:2)

也许,您应该使用PsTools(从您的应用程序运行)?理想情况下用于远程部署。