2

特定のプロセスが開始または停止されるシナリオを処理するコードがあり、これを実現するために ManagementEventWatcher を使用しています。

       string queryStart = "SELECT * FROM Win32_ProcessStartTrace" +
                     " WHERE ProcessName LIKE '...'"; // WHERE clause includes all the processnames that I want to monitor 
       ManagementEventWatcher startWatch = new ManagementEventWatcher(
            new WqlEventQuery(queryStart));
        startWatch.EventArrived += new EventArrivedEventHandler(ProcessNewInstanceWhenCreated);
        startWatch.Start();

このコードは私のマシンでローカルに正常に動作しますが、サーバーの 1 つに展開すると、「アクセスが拒否されました」という例外がスローされます。サーバーでこれを実行しているユーザーには管理者権限がないため、このリンクで説明されているようにユーザーを追加しました - http://world.episerver.com/faq/Items/SystemManagementManagementException-Access-denied/

これは問題を解決していないようです。これをサーバー上で機能させるには、他に何かアクションを実行する必要がありますか?

ManagementScope を ManagementEventHandler にも追加しましたが、それでも原因は解決しません。

       string scopeString = "\\\\" + System.Environment.MachineName + "\\root\\CIMV2";
        ManagementScope theScope = new ManagementScope(scopeString);
        ManagementEventWatcher startWatch = new ManagementEventWatcher(theScope,
            new WqlEventQuery(queryStart));

お時間をいただきありがとうございます。

4

0 に答える 0