Использование памяти процесса удаленной машины. net ядро - PullRequest
1 голос
/ 12 марта 2020

Я хочу отслеживать использование памяти процесса удаленной машины в. net ядро ​​2.2. Мое приложение будет работать в intr anet и проверять использование ЦП удаленной машины, использование памяти процессом. Разработка собственного приложения Application Performance Monitoring.

Попробуйте использовать класс System.Diagnostics класса «Process», но получите System.InvalidOperationException: «Не удалось подключиться к удаленному компьютеру». Сообщение об ошибке. имя используемой машины, но появляется та же ошибка.

Process[] remoteByName = Process.GetProcessesByName("notepad", "\\192.168.3.114");

или

Process[] remoteByName = Process.GetProcessesByName("notepad", "192.168.3.114");
  1. Не удается найти метод, который принимает имя пользователя с паролем для доступа к удаленной машине. доступного метода?
  2. Нужно ли отключать брандмауэр удаленного компьютера?
  3. Есть ли другой способ доступа к процессам удаленного компьютера в ядре. net core?

1 Ответ

0 голосов
/ 16 марта 2020

Как я знаю, под капотом класс Process использует WMI для выполнения операций на удаленных машинах. Если интерфейса класса Process недостаточно для вашей задачи, вы можете использовать запросов WMI напрямую.

Авторизация

По умолчанию класс Process использует текущий windows учетные данные для авторизации на удаленных компьютерах. Если ваша удаленная машина имеет разные учетные данные для входа, вы можете переключить контекст для правильной авторизации. Это немного хитрое решение, но оно работает. Проверьте эту статью , чтобы увидеть, как это можно сделать.

В любом случае, вы можете использовать WMI-запрос, как я упоминал ранее, для выполнения авторизации и получения необходимых данных. Это более сложное, но гибкое решение.

Межсетевой экран

Конечно, межсетевой экран может блокировать удаленные соединения. WMI по умолчанию использует порт 135 для доступа к удаленной машине, поэтому вам нужно открыть его на целевой машине.

Я рекомендую вам проверить официальную документацию о подключении WMI к удаленным машинам для настройки все конфигурации правильно.

Другие подходы

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

Эта архитектура позволяет создавать собственный протокол безопасности для обмена сообщениями между клиентами и сервером. Вы можете выбрать порт, с которым ваше приложение будет общаться. Также вы можете создавать новые / удалять старые клиенты, не затрагивая другие развернутые приложения (клиенты и сервер). Многие существующие популярные системы мониторинга (, такие как Zabbix ) используют эту архитектуру для мониторинга системы.

Это устраняет необходимость в настройке удаленного подключения к целевым машинам. Клиентские приложения могут использовать простой класс Process, чтобы собрать все необходимые данные из операционной системы и затем отправить их на сервер, используя, например, HttpClient. Также эта архитектура больше подходит для мониторинга, потому что есть некоторые задачи, которые вы не можете выполнить с помощью удаленного подключения.

...