Jeśli korzystasz z Plink, to nie używasz do tego celu PS, ponieważ po prostu uruchamiasz polecenie Plink na jednym z hostów PS (konsola / ISE / VSCode). To nie jest problem z PS, ale jak uruchomić i exe w PS. Codziennie podskakuję do Linux-a bez problemów, ale jak zauważyłeś w drugim poleceniu i problemie z poleceniem uruchomienia.
Jeśli korzystasz z jednej z konsol PS, musisz podać polecenie wykonania, a dla zewnętrznego pliku .exe powinieneś przyzwyczaić się do pełnego kwalifikowania exe.
Na przykład tutaj, w jaki sposób robię to z powodzeniem dla wszystkich moich urządzeń Linux. To, że & (ampersand) oznacza - Wykonaj ciąg jako polecenie. Zasadniczo uruchamia się to samo, wywołując program cmd.exe, ale bez dodatkowego okna terminala.
# 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
Jeśli chcesz, aby rzeczy działały w tle, po to są zadania PS.
Zobacz ten artykuł:
https://codingbee.net/tutorials/powershell/powershell-running-tasks-in-the-background
Zobacz także informacje o pliku pomocy PS dotyczące równoległych procesów i 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
Rozpoczęcie korzystania z obszarów roboczych PowerShell
https://blogs.technet.microsoft.com/heyscriptingguy/2015/11/26/beginning-use-of-powershell-runspaces-part-1
Jednak nie próbowałem tego z Plink.
Istnieje jednak wiele artykułów dotyczących przypadków użycia PS i Plink, nawet dla przełączników Cisco.
Sztuczki SSH PowerShell z plink.exe
http://www.virtu-al.net/2013/01/07/ssh-powershell-tricks-with-plink-exe
Przykładowy moduł PowerShell do zarządzania hostami Linux z włączonym SSH za pomocą SMA
To jest przykładowy moduł Windows PowerShell do zarządzania hostami Linux obsługującymi SSH. Pakuje narzędzie Putty.exe Plink.exe w celu wykonywania poleceń SSH.
https://gallery.technet.microsoft.com/scriptcenter/Sample-PowerShell-module-8d961a1c
Warto zauważyć, że PS ma moduł SSH, więc nie musisz używać Plink specjalnie do współpracy z klientami Linux.
Używanie SSH z PowerShell
https://www.thomasmaurer.ch/2016/04/using-ssh-with-powershell
Posh-SSH 2.0.2
Zapewniają funkcje SSH i SCP do wykonywania poleceń na zdalnych hostach.
https://www.powershellgallery.com/packages/Posh-SSH/2.0.2
Potrzebujesz tylko zdalnego skryptu, który wyświetla i zapisuje plik PID.
Istnieje wiele sposobów, aby to zrobić.
Jaki klient użyjesz (plink, kit, ssh lub cokolwiek innego) nie będzie miał znaczenia.
Tak długo jak:
Nie próbowałem tego dokładnie, ale oto przykład, który znalazłem podczas 0,5-minutowej sesji Google.
źródło