Linux 到 windows - 远程执行 .exe

Linux to windows - Execute .exe remotely

我们需要从 Linux 机器远程执行带参数的 .exe 到 Windows 10。所以我们在 CentOS 中安装了 PowerShell。以下是我们使用的命令:

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 : Parameter set cannot be resolved using the specified named parameters. One or more parameters issued cannot be used together or an insufficient number of parameters were provided.
At line:1 char:1

同样适用于 Windows 到 Windows。

如错误消息中所述,您正在尝试使用无效的参数集。打开 the documentation for 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>]

如您所见,其中 none 个有 -Credential 个参数可用。您的选择是:

  1. 使用WinRM代替SSH

在这种情况下,您必须使用 -ComputerName 参数而不是 -HostName

  1. 使用-SSHConnection

来自文档:

This parameter takes an array of hashtables where each hashtable contains one or more connection parameters needed to establish a Secure Shell (SSH) connection (HostName, Port, UserName, KeyFilePath).

  1. 使用我上面粘贴的一组

由于我不了解你的配置,我无法告诉你哪一个最适合你,所以你必须自己选择。