Отслеживание состояния службы на удаленном компьютере - C#
Формулировка задачи:
Всем привет.
Подскажите как отследить состояние службы на удалённом компьютере.
Использую
ServiceController
, на локальном всё хорошо, а на удалённом никак. Я так понимаю нужна учётная запись с правами администратора, но где её вводить в коде?
Листинг программы
- ServiceController sc = new ServiceController("Themes","192.168.1.10");
- textBox1.Text = sc.Status.ToString();
Или нужно через WMI ???
Листинг программы
- ConnectionOptions connection = new ConnectionOptions();
- connection.Username = "login";
- connection.Password = "password";
- ManagementScope scope;
- scope = new ManagementScope("\\\\192.168.1.2\\root\\cimv2", connection);
- scope.Connect();
Решение задачи: «Отслеживание состояния службы на удаленном компьютере»
textual
Листинг программы
- ConnectionOptions co = new ConnectionOptions();
- co.Username = "login";
- co.Password = "password";
- co.EnablePrivileges = true;
- co.Impersonation = ImpersonationLevel.Impersonate;
- ManagementScope scope = new ManagementScope(string.Format("\\\\192.168.1.10\\root\\cimv2", co));
- scope.Options = co;
- scope.Connect();
- ObjectQuery query = new ObjectQuery(string.Format("select * from Win32_Service where name = 'Themes'"));
- ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
- ManagementObjectCollection queryCollection = searcher.Get();
- foreach (ManagementObject m in queryCollection)
- {
- if (m.GetPropertyValue("State").ToString() == "Running")
- {
- textBox1.Text = "Вкл";
- }
- else
- {
- textBox1.Text = "Выкл";
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д