powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Определить на каком компе работает прога
10 сообщений из 10, страница 1 из 1
Определить на каком компе работает прога
    #38298645
Alex_studenticu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день форумчане, вот чуть продвинулся по старым вопросам и опять застрял
Вожусь с сервером Windows 2008. Сервер представляет из себя кластер состоящий из двух компов. На два сервера установлена одна и та же программа с названием "FileSystem" и она может одновременно функционировать только на одном из компов входящих в кластер. Необходимо с удаленного компа узнать на каком из компов в данное время она работает.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
ConnectionOptions options =
                new ConnectionOptions();
                options.Username = "****";
                options.Password = "****";
                //options.Authority = "ntlmdomain:DOMAIN";// разобрать
                ManagementScope scope = new ManagementScope("\\\\IP servera\\root\\cimv2", options);
                scope.Connect()
               string s = string.Format("SELECT * FROM Win32_SoftwareElement WHERE Name='FileSystem'");
                ObjectQuery query = new ObjectQuery(s);
                 ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
          ManagementObjectCollection queryCollection = searcher.Get(); 
        foreach (ManagementObject cc in queryCollection)
        { Console.WriteLine(cc); }//пока не прописывал бо ошибку выдает раньше



или вот советовали
Код: c#
1.
2.
3.
4.
5.
6.
7.
string s = string.Format("SELECT * FROM Win32_Product WHERE Name='FileSystem'"); 
ObjectQuery query = new ObjectQuery(s);
 ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query); 
ManagementObjectCollection queryCollection = searcher.Get();
 foreach (ManagementObject cc in queryCollection) 
{ Console.WriteLine(cc); }
//пока не прописывал бо ошибку выдает раньше


при пошаговой отработке на стадии

ManagementObjectCollection queryCollection = searcher.Get();

когда наводишь для того чтобы узнать значение пишет что "Время ожидания вычисления функции истекло".
Может вообще не так запрос формирую или еще что( подскажите кто знает...уже башню сносит
...
Рейтинг: 0 / 0
Определить на каком компе работает прога
    #38298661
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Alex_studenticu,

WMI к удаленному хосту - очень мутное дело. Может не сработать из-за множества факторов.

Код: c#
1.
System.Diagnostics.Process.GetProcessesByName(IP,"FileSystem")
...
Рейтинг: 0 / 0
Определить на каком компе работает прога
    #38298662
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
И при любом способе запускающий должен быть локальным админом на удаленном хосте
...
Рейтинг: 0 / 0
Определить на каком компе работает прога
    #38298668
Alex_studenticu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да вроде как дали права....заодновот и проверю:)
я уже если честно окончательно под конец дня туплю:( и описку сделал, надо не совсем программу, а надо определить на каком из этих компов работает служба с известным мне IP. согласно вашего примера надо как то так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
ConnectionOptions options =
                new ConnectionOptions();
                options.Username = "****";
                options.Password = "****";
                //options.Authority = "ntlmdomain:DOMAIN";// разобрать
                ManagementScope scope = new ManagementScope("\\\\IP servera\\root\\cimv2", options);
                scope.Connect()
System.Diagnostics.Process[] Masiv = System.Diagnostics.Process.GetProcessesByName("IP servera", "FileSystem");
foreach (Process process in Masiv)
                {
                    Console.WriteLine(""+process);
                }


но находит ноль...значит наверно для службы не совсем подходит такой запрос?
Спасибо блльшое что откликнулись:)
...
Рейтинг: 0 / 0
Определить на каком компе работает прога
    #38298823
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Alex_studenticu,

второй раз повторить?

В шарпе есть класс System.Diagnostics, который решает эту задачу без костылей WMI
...
Рейтинг: 0 / 0
Определить на каком компе работает прога
    #38298962
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ех... Если это программо действительно работает как кластерное решение... а клустер у нас файловер... то вам нужно всего лишь определить активную в данный момент ноду... а уж решение этой задачи гуглится за парсек... Или я не прав?
...
Рейтинг: 0 / 0
Определить на каком компе работает прога
    #38299421
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Службы через ServiceController проверяются.
Но и процесс должен ловиться.
А вы случаем не с расширением запрашиваете? Типа "FileSystem.exe"
...
Рейтинг: 0 / 0
Определить на каком компе работает прога
    #38301207
Alex_studenticu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2Службы через ServiceController проверяются.
Но и процесс должен ловиться.
А вы случаем не с расширением запрашиваете? Типа "FileSystem.exe"

Запрашиваю без расширения...я уже все в конец запутался....ничего не понимаю..как баран на новые ворота везде:( писец...
Пробую через
Код: c#
1.
2.
3.
4.
5.
               System.Diagnostics.Process[] Masiv = System.Diagnostics.Process.GetProcessesByName("IP servera", "FileSystem");
               foreach (Process process in Masiv)
                {
                    Console.WriteLine(""+process);
                }


но я так понимаю основная проблема что надо вводить пароль...а функции ввода пароля и логина я что-то в классе найти не могу..
...
Рейтинг: 0 / 0
Определить на каком компе работает прога
    #38301293
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ъ... Потому что их там нет... Для тех кто в танке... Нужно понимать как работает кластер...
Ваш выбор - WMI класс называется Win32_Process
...
Рейтинг: 0 / 0
Определить на каком компе работает прога
    #38301541
Alex_studenticu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
buserЪ... Потому что их там нет... Для тех кто в танке... Нужно понимать как работает кластер...
Ваш выбор - WMI класс называется Win32_Process
Все спасибо:) запутался просто во всем этом:)
получил и доступ к процессам и потом еще используя класс Win32_Services к сервисам:)
а еще такой вопрос, сейчас пока лажу по инету ищу возможность вытянуть работу службы класеров..как-то так называется....
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Определить на каком компе работает прога
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]