Я использую следующий код в приложении C # WinForms для запуска служб Windows на удаленном ПК
public static List<Service> GetServices()
{
List<Service> Services = new List<Service>();
ServiceController[] sc = ServiceController.GetServices(Server);
foreach (var s in sc)
{
Services.Add(new Service { Name = s.ServiceName, Running = s.Status == ServiceControllerStatus.Running });
}
return Services;
}
public static bool StartService(string ServiceName)
{
try
{
ServiceController sc = new ServiceController(ServiceName, Server);
sc.Start();
sc.WaitForStatus(ServiceControllerStatus.Running, new TimeSpan(0, 0, 10));
sc.Refresh();
return sc.Status == ServiceControllerStatus.Running;
}
catch(Exception ex) { return false; }
}
Метод GetServices отлично работает, когда указывает на мой локальный ПК или на удаленный ПК.Однако метод StartService работает только на моем локальном ПК, при запуске на удаленном ПК доступ запрещен.В этом случае удаленный ПК является машиной с Windows XP pro в том же домене, и у пользователя, под которым я запускаю приложение, есть права локального администратора.
Я не уверен, что это проблема смой код или если мои права доступа не верны.
Если это проблема с разрешениями, пожалуйста, дайте мне знать, и я попытаюсь задать вопрос по ServerFault.
Спасибо