var sc = new ServiceController("servicename", "othermachinename");
Учетная запись, выполняющая код, должна иметь права администратора на целевом компьютере для взаимодействия со службой. Подражание будет работать. Я использовал это только в довольно жестко контролируемой ситуации (т. Е. При запуске из учетной записи пользователя с одинаковыми учетными данными на исходных / целевых машинах), но по моему опыту все операции работают должным образом.
Если вы хотите изменить учетные данные службы и т. Д., Вам придется использовать WMI - что не так просто, как использование класса ServiceController. См. Класс ManagementObject для получения дополнительной информации.
Я нашел эту ссылку , которая описывает использование WMI для изменения учетных данных службы.