2013-05-31 6 views
0

У меня есть хост, на котором запущено несколько виртуальных машин, на каждой виртуальной машине выполняется служба, которая работает нормально локально, но когда я пытаюсь выполнить ее удаленно с хоста, я получаю запреты. Я искал google какое-то время, олицетворение не работает, потому что учетная запись хоста сильно отличается от учетных записей виртуальной машины. Я использую следующий код для запуска удаленного сервиса.C# запуск удаленного сервиса на виртуальной машине

ServiceController sc = new ServiceController("ExecuterService", "servername"); 
sc.Start(id); 

теперь мой вопрос: есть ли способ, чтобы проверить подлинность моего C# приложения, поэтому он может начать дистанционное обслуживание с помощью, например, просто давая в учетных данных пользователя для этой машины?

+0

Возможный дубликат [Как удаленно управлять службой Windows с ServiceController?] (Http://stackoverflow.com/questions/2996282/how-to-remotely-control-a-windows-service-with-servicecontroller) или http://stackoverflow.com/questions/8581931/starting-remote-windows-services-with-servicecontroller-and-impersonation –

ответ

0

Если хост-приложение имеет правильные права доступа, то можно обойти и использовать вызов процесса для NET консольных comands:

ProcessStartInfo processInfo = new ProcessStartInfo("NET", "start ExecuterService"); 
Process process = Process.Start(processInfo); 
p.WaitForExit(); 

Но это некрасиво.