Форум программистов, компьютерный форум, киберфорум
PHP: сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 17.11.2009
Сообщений: 26
1

Просмотр процессов на удаленном компьютере

20.09.2013, 11:45. Показов 1560. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет)

Имеется задача - мониторинг и управление процессами на удаленной машине, вот код -

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$server = 'localhost';
        // создаём ком объект доступа к WMI системы
        $obj = new COM ('winmgmts:{impersonationLevel=impersonate}//'.$server.'/root/cimv2');
        // делаем запрос на получение всех процессов
        $wmi_Win32_Process      = $obj->ExecQuery("Select * from Win32_Process");
        $pc = 0;
        // цикл для кажлого процесса
        ForEach($wmi_Win32_Process AS $wmi_call)
        {
            Echo $wmi_call->Name . "\n";    // имя процесса
           // Echo $wmi_call->ProcessId . "\n";    // его идентификатор в системе
           // Echo $wmi_call->CommandLine . "\n";    // коммандная строка при помощи который он был запущен, с параметрами!
           // Echo $wmi_call->ExecutablePath . "\n";    // путь к папке где находится этот процесс
        }
         foreach ($obj->instancesof('Win32_Processor') as $mp)
         {
             echo "Processor (".++$pc.")\r\n";
             echo "Name: ".trim( $mp->Name )." @ " .
             $mp->CurrentClockSpeed . " MHz\r\n";
             echo "CPU Load: ".$mp->LoadPercentage . "%\r\n";
         }
все работает) НО, стоит в переменную $server вбить IP-адресс, либо имя удаленной машины выскакивает ошибка -
Fatal error: in C:\xampp\htdocs\1\MeteoTerminal\index.php on line 10

10-я строка это -
PHP
1
$obj = new COM ('winmgmts:{impersonationLevel=impersonate}//'.$server.'/root/cimv2');
помогите разобраться, плиз)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.09.2013, 11:45
Ответы с готовыми решениями:

Просмотр работы браузера на удаленном компьютере
Задался вопросом, как просматривать, что открыто, какая страница загружена и отображена на...

Просмотр открытых файлов на удалённом компьютере
С помощью какой команды можно посмотреть запущенные приложения на удалённом компьютере и названия...

Удаление запущенных на удаленном компьютере процессов
Подскажите, есть список запущенных на удаленном компьютере процессов и есть документ,в котором...

Попытка получения запущенных процессов на удалённом компьютере
При попытке получить список запущенных процессов, прога завершается авариино. Под дебагом говорит...

6
122 / 120 / 7
Регистрация: 21.04.2013
Сообщений: 615
21.09.2013, 20:00 2
Цитата Сообщение от Medniy Посмотреть сообщение
все работает)
чтобы это работало на удаленной машине, ваш скрипт там должен находиться, да и сервер должен быть виндовый, что не так часто случается
лажа этот код..
0
1 / 1 / 1
Регистрация: 17.11.2009
Сообщений: 26
23.09.2013, 11:33  [ТС] 3
а какой тогда не лажа? Подскажите)
0
122 / 120 / 7
Регистрация: 21.04.2013
Сообщений: 615
24.09.2013, 16:26 4
Цитата Сообщение от Medniy Посмотреть сообщение
а какой тогда не лажа?
код который не опирается на возможности конкретной операционной системы. php - кросс-платформенный язык и использовать привязку к оси есть дурной тон.
Цитата Сообщение от Medniy Посмотреть сообщение
Подскажите)
если администратор удаленного компьютера захочет вам предоставить возможность получить список процессов - вы его получите. тот же telnet. можно копать туда. А если не за хочет, то спрашивайте не на этом форуме.
0
10 / 10 / 1
Регистрация: 08.06.2011
Сообщений: 98
26.09.2013, 20:05 5
Google: "Shell on PHP".
0
1 / 1 / 1
Регистрация: 17.11.2009
Сообщений: 26
27.09.2013, 17:11  [ТС] 6
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
define ( 'CPU_NAME', '192.168.1.227' );
 
    
    $killprocessname = "notepad.exe";
    
    
      $obj = new COM ( 'winmgmts:{impersonationLevel=impersonate}//' . CPU_NAME . '/root/cimv2' );
      $shell = new COM("WScript.Shell");
      
      $process = $obj->execquery ( "SELECT * FROM Win32_Process WHERE Name='$killprocessname'" );
      if ($process->count > 0)
      {
      foreach ( $process AS $row )
                  {
                    $shell->Run("taskkill /s ". CPU_NAME . "/im $killprocessname /f /t", 2, false);
                  }
                  echo "<pre><b>Process ".$killprocessname." \r\nin server ". CPU_NAME ." \r\nkilled!</b></pre>";
      }
                  elseif ($killprocessname != '.')
                 
            {
                  echo "<pre><b>Process ".$killprocessname." \r\nin server ". CPU_NAME ." \r\nnot running!</b></pre>";
            }
         
       
     $obj=Null;
     $shell=Null;

один хрен выдает ту же ошибку ((
0
10 / 10 / 1
Регистрация: 08.06.2011
Сообщений: 98
27.09.2013, 21:32 7
Что за бред. Ищи полноценный шелл, будет тебе счастье.
0
27.09.2013, 21:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.09.2013, 21:32
Помогаю со студенческими работами здесь

Получение списка запущенных на удаленном компьютере процессов
Всем привет...подскажите пожалуйста,как можно получить список запущенных процессов на удаленном...

Путь к БД на удаленном компьютере
Проблема такая: Есть сервер(MS SQL) в котором нужно создать БД. Для этого нужно явно указать путь...

Авторизация на удалённом компьютере
Подскажите как авторизоваться на удалённом компьютере. Задача такая, нужно скопировать файлы на...

Список процессов на удаленном компе
Всем привет! Хочу получить список процессов на удаленном компе с помощью ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru