2

私のシナリオは、C#.Net を使用してリモート マシンに接続し、そのリモート コンピューターですべてのプロセスを一覧表示することです。プロセスを強制終了したり、リモートで新しいプロセスを開始したりできます。問題は、リモートで新しいプロセスを実行すると、タスク マネージャーでプロセスを確認できますが、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);
4

3 に答える 3

2

問題は管理者権限に関するものです

于 2010-07-09T07:47:27.800 に答える
0

認証に問題がある場合は、ターゲット マシンの DCOM 構成を確認する必要があります。

  1. ターゲット マシンでdcomcnfg、コマンド プロンプトから実行します。
  2. 拡大Component Services\Computers\My Computer\DCOM Config
  3. GUID で識別される Windows Management Instruction を見つけます8BC3F05E-D86B-11D0-A075-00C04FB68820(これは詳細ビューで確認できます)。
  4. プロパティを編集し、ログインしようとしているユーザー名を権限タブの下に追加します。
  5. 変更を有効にするには、サービスを再起動する必要がある場合があります。
于 2012-05-02T13:51:59.970 に答える
0

ManagementPath は \ROOT\CIMV2 ではなく \ComputerName\Root\CIMV2 のようなものであるべきではありませんか?

于 2010-07-02T15:40:47.760 に答える