2010-07-02 103 views
2

我的scenerio連接到使用C#.Net的遠程機器,並列出了與該遠程計算機的所有進程。我可以殺死一個進程,或者在遠程啓動一個新進程。問題是,當我在遠程執行一個新進程時,我可以在任務管理器上看到該進程,但是它並沒有在Windows屏幕上顯示。任何想法爲什麼它不出現在Windows上,但出現在任務管理器/進程。這裏是我的代碼執行遠程進程執行

private void btnStartNew_Click(object sender, EventArgs e) 
    { 
     object[] arrParams = { txtNewProcess.Text.Trim()}; 
     try 
     { 
      manageClass = new ManagementClass(myScope, new ManagementPath("Win32_Process"), new ObjectGetOptions()); 
      manageClass.InvokeMethod("Create", arrParams); 
      btnConnect_Click(sender, e); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.ToString()); 
     } 
    } 

我的範圍是:

myScope = new ManagementScope(@"\ROOT\CIMV2", connOptions); 

回答

2

問題是關於管理員權限

0

不應該ManagementPath是像\計算機名\ ROOT \ CIMV2,而不只是\ ROOT \ CIMV2?

+0

connOptions管理這個。想想,我在電腦裏。所以我不需要鍵入一個計算機名稱。它的工作,只是問題是不能看到我開始在UI中的.exe – 2010-07-02 16:12:46

0

如果你有麻煩的認證,那麼你需要檢查目標計算機上的DCOM配置。

  1. 在目標機器上,從命令提示符運行dcomcnfg
  2. 展開Component Services\Computers\My Computer\DCOM Config
  3. 找到Windows管理指令,用GUID 8BC3F05E-D86B-11D0-A075-00C04FB68820標識(您可以在詳細信息視圖中看到此內容)。
  4. 編輯屬性,然後在權限選項卡下添加您嘗試登錄的用戶名。
  5. 您可能需要重新啓動服務才能使更改生效。