На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Вопрос по реализации респределнного приложения
    Имеем в наличии локальную сеть из 20 компьютеров, все они находятся в одном домене. являемся администратором этой сети и имеем соответствующие полномочии. Подскажите как реализовать следующее:
    програмку наподобие Диспетчера задач,(достаточно данные о запущенных процессах) и мониторить их в режиме реального времени. Т.е. запускаем ее на любом из этих 20 компьютеров с правами администратора, и мониторим процессы(название, время запуска, память) с нескольких компьютеров. С помощью WMI получается дергать информацию, но как сделать это в реальном времени? зациклить? (наверное это опасно)
    Или запускаем клиент на одном компе а на нескольких специальных агент, который бы нам отдавал эту информацию? только как это лучше реализовать?
    Может ктонибудь в общих чертах набрасать модель реализации данного приложения?
      Такие программы уже написаны, ищи по удаленному администрированию.
        Всмысле? есть исходники?
        мне нужно реализовать такую программу.
          Никакие программы на удаленных компах не нужны. WMI прекрасно может работать с удаленными компьютерами.
            хм.мне нужно получать данные например о используемой памяти процессом в реальном времени. Разве правильно было бы дергать с помощью wmi ее каждую секунду? или через n-секунд?

            единоразово делаю так:

            ExpandedWrap disabled
                          try
                          {
                              
                              ConnectionOptions options = new ConnectionOptions();
                              options.Username = "test";
                              options.Password = "test123";
               
                              ManagementScope scope = new ManagementScope("\\\\192.168.0.102\\root\\cimv2", options);
                              scope.Connect();
               
                              ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_Process");
                              ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
                              ManagementObjectCollection queryCollection = searcher.Get();
               
                              foreach (ManagementObject p in queryCollection3)
                              {
                                  
                                      string[] methodArgs3 = new String[2];
                                      p.InvokeMethod("GetOwner", methodArgs3);
                                    
                                      double WSS = Convert.ToDouble(p["WorkingSetSize"].ToString()) / 1024;
                                      string[] prcdetails = new string[] { p["Name"].ToString(), methodArgs3[0], p["ProcessId"].ToString(), WSS.ToString() + " KB", p["Priority"].ToString() };
                                      
                                      ListViewItem proc = new ListViewItem(prcdetails);
                                      lvprocesslist.Items.Add(proc);
                                  
                              }
               
                          }
                          catch (Exception ex)
                          {
                              MessageBox.Show(ex.Message);
                          }

            где lvprocesslist это ListView.
            Зациклить? или как бы было правильно это сделать?
              Дергать раз в промежуток времени
              Тока коннект оставить один, а не каждый раз создавать
              И учсть что коннект может упасть, тогда надо пересоздавать... но это уже частности, разберешься
                хм, а как лучше?)
                каждый раз если обновлять ListView то это заметно, т.к. он начинает моргать) Поэтому весь список сразу обновлять как то не рационально, ведь могут появиться новые процессы, или значение памяти изменится только у одного процесса... обновлять именно значения одного столбика в ListView или тот в котором были изменения...
                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script execution time: 0,0680 ]   [ 15 queries used ]   [ Generated: 17.05.24, 10:24 GMT ]