Как сделать пакетный скрипт для запуска команд на удаленном компьютере с использованием учетных данных - PullRequest
0 голосов
/ 05 декабря 2018

Я написал несколько пакетных сценариев для выполнения команд докера на компьютере и заставил его работать с помощью программы на c #.Я могу успешно запустить эти пакетные сценарии на своем локальном компьютере, но я хочу, чтобы он запускался на удаленном компьютере.Как я могу сделать это, предоставив учетные данные для доступа к удаленной машине?Я ищу пакетные команды, которые сначала подключаются к удаленной машине, а затем выполняют ее тело на удаленной машине.Пример пакетного сценария приведен ниже.

::Start an exited container
::Iam expecting some code here to connect to a remote machine
@echo off
docker start %1

Или, есть ли возможность сделать это через программу c #?

Ответы [ 3 ]

0 голосов
/ 12 декабря 2018

Мне не удалось найти метод для запуска пакетных сценариев на удаленной машине, но я использовал сценарии powershell вместо пакетных сценариев.Если вы можете использовать сценарии powershell вместо пакетных сценариев, вы можете использовать этот метод.

set-item wsman:localhost\client\trustedhosts -value <Remote_computer_name> -Force
$pword = ConvertTo-SecureString -String <Remote_machine_password> -AsPlainText -Force
$user = <Remote_userName>
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user, $pword
Set-ExecutionPolicy -ExecutionPolicy Bypass
Invoke-Command -ComputerName <Remote_computer_name> -filepath <ps1_file_path> -Credential $Credential

Выполнение вышеуказанных команд в окне администратора powershell запустит сценарии в <ps1_file_path> на удаленном компьютере.


Примите во внимание, что команда set-item wsman:localhost\client\trustedhosts -value <Remote_computer_name> -Force добавит удаленный компьютер в список доверенных хостов.Кроме того, команда Set-ExecutionPolicy -ExecutionPolicy Bypass позволит запускать все сценарии powershell на нашей машине, и я не уверен, что ее можно использовать безопасно.Надеюсь, это кому-нибудь поможет, но вы должны провести исследование, чтобы убедиться, что этот метод безопасен.См .:

Политики выполнения

0 голосов
/ 29 мая 2019

Попробуйте использовать PsExec https://docs.microsoft.com/en-us/sysinternals/downloads/psexec

Это легкая замена для telnet

0 голосов
/ 05 декабря 2018

Пожалуйста, попробуйте подключиться с помощью WinRM.Некоторые примеры информации -

удаленное выполнение команды

и

ссылка на команду winrm

Или sshсервер на сервере Windows - пример WinSCP

Надеюсь, это поможет.

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