Как я могу запускать и останавливать службы на удаленной машине? - PullRequest
3 голосов
/ 17 февраля 2009

У меня есть требование в проекте, чтобы мы остановили конкретную службу, скажем, «x» на удаленном компьютере (которая находится в той же локальной сети), изменили ключ реестра и снова запустили службу.

Я попробовал команду sc \server stop service, но получил ошибку:

[SC] GetServiceKeyName FAILED 1060:

Указанная служба не существует в качестве установленной службы.

Я использую Windows 2003 SP1. Существуют ли какие-либо встроенные команды или API, доступные в Windows?

Мне нужно, чтобы команда запускалась в командной строке.

Ответы [ 4 ]

7 голосов
/ 03 января 2012

Также следует помнить, что аргумент «имя службы», ожидаемый средством командной строки «sc», не всегда совпадает с именем, которое вы видите в апплете панели управления службами (которое является «отображаемым именем службы»).

Например, служба, которая отображается как «Служба обновления Adobe Acrobat» в моем апплете панели управления службами, имеет фактическое имя «AdobeARMservice». Вы должны использовать последний, но не первый, при управлении сервисом через утилиту "sc".

Пример:

sc Stop "AdobeARMservice" (works)
sc Stop "Adobe Acrobat Update Service" (doesn't work)

Чтобы получить «настоящее» имя службы, дважды щелкните ее запись в апплете панели управления службами и просмотрите поле «имя службы» на вкладке Общие.

Конечно, в некоторых случаях отображаемое имя и имя службы совпадают.

4 голосов
/ 17 февраля 2009

Возможно, вы захотите посмотреть на PSTools из SysInternals . Эти инструменты доступны бесплатно и могут помочь вам управлять процессами на удаленном компьютере с Windows.

Инструменты, включенные в комплект PsTools, которые можно загрузить в виде пакета:

PsExec - execute processes remotely
PsFile - shows files opened remotely
PsGetSid - display the SID of a computer or a user
PsInfo - list information about a system
PsKill - kill processes by name or process ID
PsList - list detailed information about processes
PsLoggedOn - see who's logged on locally and via resource sharing 
PsLogList - dump event log records
PsPasswd - changes account passwords
PsService - view and control services
PsShutdown - shuts down and optionally reboots a computer
PsSuspend - suspends processes
PsUptime - shows you how long a system has been running since its last reboot
2 голосов
/ 17 февраля 2009

С этого URL :

To stop a service remotely you can use the command sc.

Example:
> sc \\computer stop "Service Name"
> sc \\computer start "Service Name"

Возможно, вам не хватает символа "\"?

0 голосов
/ 17 февраля 2009

Используйте OpenCSManager, затем OpenService, затем StartService.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...