Отслеживание состояния службы на удаленном компьютере - 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 = "Выкл"; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д