Linux для Windows - Выполнить .exe удаленно - PullRequest
0 голосов
/ 02 июля 2018

У нас есть требование для запуска .exe с параметрами удаленно с компьютера с Linux на Windows 10. Поэтому мы установили PowerShell в CentOS. Ниже приведены команды, которые мы использовали:

Invoke-Command -HostName abcdefg -Credential $creds -ScriptBlock { Start-Process -FilePath "C:\sip\GetProcessInstance.exe" -$args[0] } -ArgumentList "http://hostname:8080/jbpm-console/rest/task/listUserTasks?potentialOwner=abc@xyz.com"

Invoke-Command -HostName abcdefg -Credential $creds -ScriptBlock { Start-Process -FilePath "C:\sip\GetProcessInstance.exe" -ArgumentList "http://hostname:8080/jbpm-console/rest/task/listUserTasks?potentialOwner=abc@xyz.com" }

Invoke-Command -HostName abcdefg -Credential $creds -ScriptBlock { Get-ChildItem C:\ }

Получение следующей ошибки

Invoke-Command: набор параметров не может быть разрешен с использованием указанных именованных параметров. Один или несколько введенных параметров не могут использоваться вместе или было предоставлено недостаточное количество параметров.
В строке: 1 символ: 1

enter image description here

То же самое работает для Windows и Windows.

1 Ответ

0 голосов
/ 02 июля 2018

Как указано в сообщении об ошибке, вы пытаетесь использовать неверный набор параметров. Как только вы откроете документацию для Invoke-Command, вы сможете найти наборы, которые можете использовать.

Посмотрите на блок в начале документа, на который я ссылался. Есть только два возможных набора с параметром -HostName:

Invoke-Command
      -ScriptBlock <scriptblock>
      -HostName <string[]>
      [-Port <int>]
      [-AsJob][-HideComputerName]
      [-UserName <string>]
      [-KeyFilePath <string>]
      [-SSHTransport]
      [-RemoteDebug][-InputObject <psobject>]
      [-ArgumentList <Object[]>]
      [<CommonParameters>]

Invoke-Command
      -FilePath <string>
      -HostName <string[]>
      [-Port <int>]
      [-AsJob]
      [-HideComputerName][-UserName <string>]
      [-KeyFilePath <string>]
      [-SSHTransport]
      [-RemoteDebug]
      [-InputObject <psobject>][-ArgumentList <Object[]>]
      [<CommonParameters>]

Как видите, ни у одного из них нет параметра -Credential. Ваши варианты:

  1. Используйте WinRM вместо SSH

В этом случае вам придется использовать -ComputerName param вместо -HostName

  1. Использование -SSHConnection

Из документов:

Этот параметр принимает массив хеш-таблиц, где каждая хеш-таблица содержит один или несколько параметров соединения, необходимых для установления соединения Secure Shell (SSH) (HostName, Port, UserName, KeyFilePath).

  1. Используйте один из наборов, которые я вставил выше

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

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