Я запрограммировал инструменты, чтобы справиться с этим не только для простого примера сценария.Я расскажу об основных примерах сценариев.
Чтобы решить эту проблему с помощью пакетного сценария, вызовите PsExec (один из инструментов SysInternals).Вы можете использовать PsExec для удаленного выполнения задач.Учетные данные, которые вам нужно будет указать, должны быть локальными администраторами на удаленной машине.Например:
PsExec \\computername -u adminuser -p adminuserpassword somecommand somecommandarguments
Если бы я хотел скопировать файл между двумя каталогами, я мог бы сделать следующее:
PsExec \\computername -u adminuser -p adminuserpassword xcopy "C:\TestFile.txt" "C:\MyDir\TestFile.txt" /i /e /r /y
Мне нравится загружать инструменты SysInternals в каталог TOOLS идобавьте это к моей переменной окружения PATH, чтобы мне не нужно было использовать полный путь к PsExec.
Вы можете комбинировать это с переносом службы Windows в MSI для упаковки и установки.В пакете MSI вы сможете определить, как установить службу Windows, чтобы она запускалась с Windows, вручную или как вам угодно.Вы также можете настроить учетную запись пользователя для его запуска.Я всегда предпочитаю вручную запускать сервис.Используйте инструмент командной строки MSIEXEC для запуска пакета MSI.Вы можете связать эти команды вместе, чтобы выполнить копирование и развертывание следующим образом:
PsExec \\computername -u adminuser -p adminuserpassword xcopy "\\buildserver\DeploymentPackages\MyWinService-v1\MyWinService.msi" "C:\Updates\MyWinService.msi" /i /e /r /y
PsExec \\computername -u adminuser -p adminuserpassword MSIEXEC /i "C:\Updates\MyWinService.msi" INSTALLDIR="C:\Program Files (x86)\MyWinService"
PsExec \\computername -u adminuser -p adminuserpassword sc start "MyWinService"
Вам не понадобится PsExec для запуска SC.exe на удаленном компьютере, поскольку у него есть возможность указать компьютер.
Надеюсь, это поможет вам где-то.Я включаю ссылки на инструменты SysInternals и установщик Windows XML (WiX) для создания пакетов MSI из Visual Studio.
PsExec из SysInternals Suite
Windows Installer XML (WiX)