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