Как перезапустить службу на удаленном компьютере в Windows? [закрыто]

139

Иногда во время отладки мне нужно перезапустить службу на удаленном компьютере. В настоящее время я делаю это через удаленный рабочий стол. Как это можно сделать из командной строки на моем локальном компьютере?

Джош Кодрофф
источник
1
Ни один из этих ответов не объясняет, как выполнить удаленный запуск при обработке разрешений пользователя, необходимых для выполнения вызова службы.
djangofan 03

Ответы:

209

Вы можете использовать консоль служб, щелкнув слева и выбрав опцию «Подключиться к другому компьютеру» в меню «Действие».

Если вы хотите использовать только командную строку, вы можете использовать

sc \\machine stop <service>
Винко Врсалович
источник
1
Отлично работает с cmd.exe. Не работает в PowerShell, вероятно, из-за ошибки \\, следует: Set-Content: не удается найти параметр, который соответствует имени параметра '[имя службы]'. Единственный незначительный недостаток в том, что он возвращает вас в командную строку до завершения операции.
Джош Кодрофф,
4
поскольку команда sc работает асинхронно, если вам нужно выполнить сценарий перезапуска службы, взгляните на пакетные сценарии, которые я разместил здесь: stackoverflow.com/questions/1405372/…
Эрик Фальскен
6
На Powershell вам нужно использовать sc.exe \\machine stop <service>. В противном случае, я думаю, sc относится к другой команде.
CJBrew 03
5
Какой минимальный набор разрешений требуется пользователю для запуска конкретной удаленной службы на удаленном компьютере?
huseyint
+1 это работает без проблем в PowerShell, в отличие от таких вещей, как Invoke-Command \\ remote_machine {Start-Service ...} (для которого требуется удаленное управление Windows, настроенное на remote_machine), и он выигрывает у PsTools в том, что идет sc.exe по умолчанию при установке Windows
hello_earth
41

Вы можете использовать mmc:

  1. Пуск / Выполнить. Наберите "mmc".
  2. Файл / Добавить / Удалить оснастку ... Нажмите "Добавить ..."
  3. Найдите «Услуги» и нажмите «Добавить».
  4. Выберите «Другой компьютер:» и введите имя хоста / IP-адрес удаленного компьютера. Нажмите Finish, Close и т. Д.

После этого вы сможете управлять службами, как если бы они находились на вашем локальном компьютере.

Райан Даффилд
источник
1
Ой, не видел требования "командной строки".
Райан Даффилд,
7
Какие порты мне нужно разблокировать на моем сервере?
The Muffin Man
2
Это золото. Я всегда обращался к серверам удаленно для обработки услуг. Теперь у меня может быть список разных серверов в одной консоли.
Алан
9

Вы можете использовать команду System Internals PSEXEC для удаленного выполнения net stop yourservice , а затем net start yourservice

Филибер Перусс
источник
PSService тоже полезен. В этих инструментах много силы.
Брэд Брюс
6

Используя командную строку, вы можете сделать это:

AT \\computername time "NET STOP servicename"
AT \\computername time "NET START servicename"
Эндрю Мур
источник
6
Чтобы было понятно, команда «AT» использует планировщик Windows для планирования команды. это излишне для написания сценариев ряда удаленных команд и не гарантирует порядок выполнения или завершение команды до следующей команды. Команда SC для этого намного лучше. Взгляните на пакетные сценарии, которые я опубликовал в этом вопросе: stackoverflow.com/questions/1405372/…
Эрик Фальскен,
1

Предлагаю вам взглянуть на RSHD

За клиентом возиться не нужно, в Windows он есть по умолчанию.

тафа
источник
0

Что ж, если у вас есть Visual Studio (я знаю, что это в 2005 году, хотя не уверен в более ранних версиях), вы можете добавить удаленный компьютер в свой тег «Server Explorer». На этом этапе у вас будет доступ к СЛУЖБАМ, которые запущены или могут быть запущены с этой машины (а также журналам событий, очередям и парочке других интересных вещей).

Стивен Райтон
источник
Как ни странно, это работает в VS2005, но НЕ в VS2008. Вы по-прежнему можете ПРОСМОТРЕТЬ службы, но больше не можете запускать или останавливать их напрямую. Вместо этого вы можете щелкнуть правой кнопкой мыши узел Services и запустить Service Manager для этого хоста.
Питер Вон
0

Один из способов - включить telnet-сервер на машине, на которой вы хотите управлять службами (добавить / удалить компоненты Windows).

Откройте приглашение DOS
Введите telnet yourmachineip / name
Войдите в систему,
введите net start и serviceName * например, w3svc

Это запустит IIS, или вы можете использовать net stop, чтобы остановить службу.

В зависимости от вашей настройки вам нужно рассмотреть способ защиты telnet-соединения, поскольку я считаю его незашифрованным.

Алексмак
источник
2
Telnet определенно незашифрован.
Джош Кодрофф
0

Здесь несколько хороших решений. Если вы все еще используете Windows 2000 и не можете ничего установить на удаленный компьютер, это тоже работает:

Откройте Консоль управления компьютером (щелкните правой кнопкой мыши «Мой компьютер», выберите «Управление»; откройте из «Администрирование» в меню «Пуск»; или откройте из MMC с помощью оснастки).

Щелкните правой кнопкой мыши имя своего компьютера и выберите «Подключиться к удаленному компьютеру».

Введите имя компьютера и учетные данные, и у вас будет полный доступ ко многим функциям администратора, включая панель управления службами.


источник