Я смотрел бы на PsService от Sysinternals Microsoft (его часть превосходного комплекта инструментальных средств, записанного Mark Russinovich).
Прямо с веб-сайта:
Usage: psservice [\\computer [-u username] [-p password]] <command> <options>
Для <command>
, можно использовать start
, stop
, или restart
как наиболее распространенные опции. То, что хорошо об этом сценарии, то, что это не зависит от этих двух машин, являющихся членами того же домена или имеющих никакое другое доверие.
Только для полноты здесь, если Вы хотите сделать это только с инструментами Windows запаса, можно сначала установить соединение IPC к удаленной машине (для установления маркера безопасности на той машине) и затем использовать команду "SC":
net use \\remote\IPC$ /user:local-username-on-remote-machine passowrd
sc \\remote stop service-name
net use \\remote\IPC$ /delete
Это позволит Вам контрольные службы на удаленной машине, независимо от комбинации рабочей группы / доменное членство обеих машин.
Никогда лично попробованный это в недоменной конфигурации, но возможно выполненном SC.exe с "RunAs" и учетными данными использования для целевого компьютера?
Runas /user:TargetComputerName\TargetAccountName "sc.exe \\testsvr stop ""myService"""
Вы могли бы хотеть посмотреть на Powershell 2.0. Этому можно было бы встроить эту функциональность как своего рода RDP, таким образом Вы не будете нуждаться в домене, а скорее включать соединение и открывать некоторые порты. Здесь ищите небольшое описание и некоторые ключевые слова, что Вы можете Google.
В ДОМЕННОЙ среде Вы можете использовать СЕТЕВЫЕ команды ИСПОЛЬЗОВАНИЯ, предполагая, что надлежащие пользовательские права предоставили Вашему зарегистрированному пользователю, который запускает скрипт. PowerShell является, вероятно, самой мощной опцией, которую Вы имеете, но если Вы выполняете более старую Microsoft Operating Systems, у Вас могут быть некоторые проблемы, выполняющие некоторые команды PowerShell. Если бы все - Windows 2008 или более новый, я определенно пошел бы с PowerShell.
Если это не опция, я имел большой успех с пакетом PSTools. Если Вы ДЕЙСТВИТЕЛЬНО идете с этой опцией, как Evan упомянул ранее, необходимо, вероятно, ознакомиться с pskill утилитой в том же пакете. Некоторые сервисы не умирают корректно, когда Вы слоняетесь без дела с ними удаленно, и эта небольшая утилита является БОЛЬШОЙ для уничтожения их.
Из любопытства, в каком языке сценария Вы кодируете это? VBScript? ПАКЕТ? Perl?