2013-01-13 338 views
0

上運行的程序我有這樣的代碼:遠程計算機

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配置了防火牆)。

有點沒有更多的想法...

謝謝。

+0

我假設你已經選中記事本沒有在遠程計算機的後臺運行(查看任務管理器)?你沒有連接到登錄用戶的桌面會話,所以它可能不會顯示在屏幕上。 – Rhumborl

+0

感謝您的回覆。是的,我檢查了,但沒有運行,它不會在後臺運行。我也嘗試將用戶名和密碼設置爲「connOptions」,但仍然沒有... – Idanis

+0

可以檢查outParams [「returnValue」]和outParams [「processId」]的值嗎? – prthrokz

回答

2

也許,你應該使用PsTools(從你的應用程序運行)?理想的遠程部署。

+0

嗨。我聽說過PsTools和PsExe,但我不喜歡使用外部工具... – Idanis

+0

PS工具比WMI路線更快地相信我。 – Derek