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





Вы можете использовать консоль служб, щелкнув слева и выбрав опцию «Подключиться к другому компьютеру» в меню «Действие».
Если вы хотите использовать только командную строку, вы можете использовать
sc \machine stop <service>
Отлично работает с cmd.exe. Не работает в PowerShell, вероятно, из-за ошибки \\, следует: Set-Content: не удается найти параметр, который соответствует имени параметра «[имя службы]». Единственный незначительный недостаток заключается в том, что он возвращает вас в командную строку до завершения операции.
поскольку команда sc работает асинхронно, если вам нужно запустить сценарий перезапуска службы, взгляните на пакетные сценарии, которые я разместил здесь: stackoverflow.com/questions/1405372/…
На Powershell вам нужно использовать sc.exe \machine stop <service>. В противном случае, я думаю, sc относится к другой команде.
Какой минимальный набор разрешений требуется пользователю для запуска определенной удаленной службы на удаленном компьютере?
+1 это работает без проблем в PowerShell, в отличие от таких вещей, как Invoke-Command \\ remote_machine {Start-Service ...} (для которого требуется удаленное управление Windows, настроенное на remote_machine), и он выигрывает у PsTools в том, что идет sc.exe по умолчанию при установке Windows
В PowerShell вы можете просто сделать это с помощью командлета Restart-Service: Get-Service W3SVC -computer myserver | Restart-Service.
@JanRemunda Любой пример полного исходного кода на Powershell?
Это полный образец. С помощью командлета get-service вы разрешаете объект службы w3svc на компьютере "myserver" и передаете его по конвейеру с помощью | для командлета перезапуска службы.
+1 В качестве примечания: если вам нужно сделать это из учетной записи без прав администратора, вы должны предоставить разрешения этому пользователю, как описано в ответе здесь: social.technet.microsoft.com/Forums/windowsserver/en-US/…
Что ж, если у вас есть Visual Studio (я знаю, что это в 2005 году, хотя не уверен в более ранних версиях), вы можете добавить удаленный компьютер в свой тег «Server Explorer». На этом этапе у вас будет доступ к СЛУЖБАМ, которые запущены или могут быть запущены с этого компьютера (а также журналам событий, очередям и некоторым другим интересным вещам).
Как ни странно, это работает в VS2005, но НЕ в VS2008. Вы по-прежнему можете ПРОСМОТРЕТЬ службы, но больше не можете запускать или останавливать их напрямую. Вместо этого вы можете щелкнуть правой кнопкой мыши узел Services и запустить Service Manager для этого хоста.
Один из способов - включить telnet-сервер на машине, на которой вы хотите управлять службами (добавить / удалить компоненты Windows).
Откройте подсказку dos
Введите telnet yourmachineip / имя
Вход в систему
введите net start и serviceName * например w3svc
Это запустит IIS, или вы можете использовать net stop, чтобы остановить службу.
В зависимости от вашей настройки вам нужно рассмотреть способ защиты telnet-соединения, поскольку я считаю его незашифрованным.
Telnet определенно не зашифрован.
Вы можете использовать mmc:
После этого вы сможете управлять службами, как если бы они находились на вашем локальном компьютере.
Ой, не видел требования "командной строки".
Какие порты мне нужно разблокировать на моем сервере?
Это золото. Я всегда обращался к серверам удаленно для обработки сервисов. Теперь у меня есть список разных серверов в одной консоли.
Вы можете использовать команду Внутреннее устройство системыPSEXEC для удаленного выполнения нетто прекратите ваше обслуживание, затем net start yourservice
PSService тоже полезен. В этих инструментах много силы.
Я бы посоветовал вам взглянуть на RSHD
За клиентом заморачиваться не надо, в Windows он есть по умолчанию.
Используя командную строку, вы можете сделать это:
AT \computername time "NET STOP servicename"
AT \computername time "NET START servicename"
Чтобы было понятно, команда «AT» использует планировщик Windows для планирования команды. это излишне для написания сценариев ряда удаленных команд и не гарантирует порядок выполнения или завершение команды до следующей команды. Для этого гораздо лучше подходит команда SC. Взгляните на пакетные скрипты, которые я разместил в этом вопросе: stackoverflow.com/questions/1405372/…
Здесь несколько хороших решений. Если вы все еще используете Windows 2000 и не можете ничего установить на удаленный компьютер, это тоже работает:
Откройте консоль управления компьютером (щелкните правой кнопкой мыши «Мой компьютер», выберите «Управление»; откройте из «Администрирование» в меню «Пуск»; или откройте из MMC с помощью оснастки).
Щелкните правой кнопкой мыши имя своего компьютера и выберите «Подключиться к удаленному компьютеру».
Введите имя компьютера и учетные данные, и у вас будет полный доступ ко многим функциям администратора, включая панель управления службами.
Ни один из этих ответов не объясняет, как выполнить удаленный запуск при обработке разрешений пользователя, необходимых для выполнения вызова службы.