Удаленное администрирование. Что актуальнее - WMI или Remoting - C#
Формулировка задачи:
Всем доброго времени суток. В одном из постов но я уже кажется писал что занимаюсь разработкой программы для удаленного администрирования ПК по ЛВС. Программа должна предоставлять возможность просматривать и управлять процессами, файловой системой, реестром. Основой для разработки первоначально была выбрана среда Net Remoting, то есть используется два приложения, клиент и сервер. Но недавно наткнувшись на статью о WMI натолкнуло на мысль - а подходит ли Remoting для решения подобной задачи, или лучше использовать WMI для того же сбора информации о системе, или другие инструменты нежели Remoting? Вот так например мной реализован сбор процессов в удаленной машине(только куски кода):
Сервер(а точнее его библиотека)
Клиент
Подскажите кто может и знает какими "инструментами" лучше пользоваться для разработки подобного приложения, Remoting или что то другое? И ещё сразу один вопрос не создавая темы, как узнать какой из установленных фреймворков участвует в сборке приложения? А то я пишу приложение на Xp, там версий несколько, а на Win7 приложение нормально не работает, нужно поставить на обе машины версию фреймворка с Win7 а остальные удалить, или как? Спасибо всем откликнувшемся и хватившим терпения дочитать вопрос до конца
public Process[] process;
public void GetListOfProcess()
{
process = Process.GetProcesses();
}TcpChannel tcpChannel = new TcpChannel();
ChannelServices.RegisterChannel(tcpChannel);
//удаленный класс
public RemoteDesktop Desktop;
Desktop = (RemoteDesktop)Activator.GetObject(typeof(RemoteDesktop), "tcp://192.168.56.2:8080/PCManagement");
private void GetProcessList()
{
Desktop.GetListOfProcess();
Process[] p = Desktop.process;
foreach (Process proc in p)
{
// вывод данных процесса
}
}Решение задачи: «Удаленное администрирование. Что актуальнее - WMI или Remoting»
textual
Листинг программы
string s;
//Текущая папка.
s = Environment.CurrentDirectory;
Console.WriteLine("Текущая папка: {0}.", s);
//Системная папка.
s = Environment.SystemDirectory;
Console.WriteLine("Системная папка: {0}.", s);
//Имя компьютера.
s = Environment.MachineName;
Console.WriteLine("Имя компьютера: {0}.", s);
//Oперационная система и ее версия.
OperatingSystem os = Environment.OSVersion;
Console.WriteLine("Операционная система: {0}, версия {1}.", os.Platform, os.Version);
//Версия платформы .NET.
Version ver = Environment.Version;
Console.WriteLine("Версия платформы .NET: {0}.{1}.", ver.Major, ver.Minor);