Se você está rodando plink, então você não está usando o comando PS para fazer isso, já que você está apenas executando um comando plink em um dos hosts PS (console / ISE / VSCode). Este não é um problema de PS, mas sim como executar e executar no PS. Eu faço plink para caixas de Linux diariamente sem problema, mas como você notou em seu segundo comando e iniciar o problema de comando.
Se você estiver em um dos consoles PS, terá que fornecer um comando de execução e, para o .exe externo, deverá adquirir o hábito de qualificar totalmente o exe.
Por exemplo, aqui é assim que faço isso com sucesso em todas as minhas caixas Linux. Isso & (E comercial) significa - Executar string como comando. Basicamente, a mesma coisa que você está fazendo chamando cmd.exe start, mas sem a janela de terminal adicional.
# Using PowerShell and Plink for Linux remote management
# Example
$PlinkPath = 'D:\Tools\plink.exe'
$linuxhostname = 'SomeLinuxHostName'
$linuxusername = 'SomeLinuxUserName'
$LinuxSessionName = 'LinuxSessionNameName' # Putty Saved session name
$GetIptablesNat = & $PlinkPath -load $LinuxSessionName 'sudo -s iptables -L -nv --line-numbers -t nat';$GetIptablesNat
$GetIptablesFilter = & $PlinkPath -load $LinuxSessionName 'sudo -s iptables -L -nv --line-numbers -t filter';$GetIptablesFilter
$RestartIptablesService = & $PlinkPath -load $LinuxSessionName 'sudo -s service iptables restart';$RestartIptablesService
# Network statistics
$GetNetworkStatistics = & $PlinkPath -load $LinuxSessionName 'sudo -s netstat -tN';$GetNetworkStatistics
# Connectivity check
(
'SomeLinuxHostFQDN','SomeLinuxIPA'
) | % { Test-Connection -ComputerName $_ }
# From Linux NAT Gateway
$TestConnectivity = & $PlinkPath -load $LinuxSessionName 'sudo -s ping SomeHostIPA';$TestConnectivity
Se você deseja que o material seja executado em segundo plano, é para isso que os trabalhos PS são.
See this article:
https://codingbee.net/tutorials/powershell/powershell-running-tasks-in-the-background
Veja também as informações do arquivo de ajuda do PS referentes a processos paralelos e Runspaces.
Get-Help -Name about_Jobs
Get-Help -Name about_Parallel
Get-Help -Name about_PSSessions
Get-Help -Name about_PSSession_Details
Get-Help -Name about_Workflows
Get-Help -Name about_WorkflowCommonParameter
Beginning Use of PowerShell Runspaces
https://blogs.technet.microsoft.com/heyscriptingguy/2015/11/26/beginning-use-of-powershell-runspaces-part-1
No entanto, não tentei isso com o Plink.
Mas há muitos artigos sobre casos de uso de PS e Plink, mesmo para switches da Cisco.
SSH PowerShell tricks with plink.exe
http://www.virtu-al.net/2013/01/07/ssh-powershell-tricks-with-plink-exe
Sample PowerShell module for managing SSH enabled Linux hosts using SMA
This is a sample Windows PowerShell module to manage SSH enabled Linux hosts. It wraps the Putty tool Plink.exe to perform the SSH commands.
https://gallery.technet.microsoft.com/scriptcenter/Sample-PowerShell-module-8d961a1c
E ponto de nota, PS tem um módulo SSH, então você não precisa usar o Plink especificamente para interoperar com clientes Linux.
Using SSH with PowerShell
https://www.thomasmaurer.ch/2016/04/using-ssh-with-powershell
Posh-SSH 2.0.2
Provide SSH and SCP functionality for executing commands against remote hosts.
https://www.powershellgallery.com/packages/Posh-SSH/2.0.2