Подтвердить что ты не робот

Как удаленно управлять службой Windows с помощью ServiceController?

Я пытаюсь контролировать службы Windows, установленные на удаленном компьютере. Я использую класс ServiceController.

У меня есть это:

ServiceController svc =  new ServiceController("MyWindowsService", "COMPUTER_NAME");

С этим я могу получить статус службы Windows следующим образом:

string status = svc.Status.ToString();

Но я не могу управлять службой Windows (делаю svc.Start(); или svc.Stop();). Я получаю следующее исключение:

Не удается открыть службу Servicexxx компьютер "COMPUTER_NAME"

Это нормально, я полагаю, что есть что-то делать с разрешениями доступа. Но как? Я просмотрел Google, но не нашел то, что искал. Однако я часто читал что-то, связанное с олицетворением, но я не знаю, что это значит.

NB: локальные и удаленные компьютеры работают под управлением Win XP Pro.

4b9b3361

Ответ 1

Проблема решена.

Олицетворение состоит в запуске фрагмента кода с использованием определенного входа/пароля. Я нашел этот очень полезный проект: http://www.codeproject.com/KB/cs/svcmgr.aspx?display=Print, который мне очень помог!

Ответ 2

Запуск и остановка служб - это высокоприоритетная операция, обычно доступная только администраторам. Убедитесь, что используемая учетная запись пользователя имеет достаточные привилегии на целевой машине. Задайте больше вопросов об этом на serverfault.com

Ответ 3

Чтобы решить проблему, укажите свое имя для прав администратора на удаленном компьютере/сервере, например domain/username, и вы сможете успешно запустить пакет, так как у меня была такая же проблема, и когда я дал разрешения на мои собственные услуги, доступный на удаленном сервере