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

StackOverflow https://stackoverflow.com/questions/2996282

Вопрос

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

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

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

При этом я могу получить статус службы Windows так:

string status = svc.Status.ToString();

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

Невозможно открыть Servicexxx Service на компьютере 'computer_name'

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

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

Это было полезно?

Решение

Задача решена.

Выражение состоит в том, чтобы запустить кусок кода, используя определенный вход/пароль. Я нашел этот очень полезный проект: http://www.codeproject.com/kb/cs/svcmgr.aspx?display=print Это мне очень помогло!

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top