与PowerShell命令PLINK不起作用

时间:2018-09-24 13:46:37

标签: powershell powershell-v3.0

我有一堆Linux服务器,我需要在其中运行一些命令来获取备份服务器的主机文件条目。我正在计划使用plink制作Power Shell脚本来实现此目的。它将我记录在服务器中,但命令未执行。下面是Powershell控制台

$switch = "172.20.19.50"
$commands = "c:\scripts\cmd.txt"
$username = root
$pw =  Read-Host -Prompt "Enter password" -AsSecureString
plink -ssh $switch -l $username -pw $pw -m $commands

output

bash: Support: command not found
bash: Maintenance: command not found

我的c:\ scripts \ cmd.txt包含以下两个命令:

Support
Maintenance

命令中有什么我想念的吗?同样,如果有人可以建议一种更好的方法来远程从linux服务器获取输出,那将是很大的帮助。我只需要查询一些命令即可获取输出

2 个答案:

答案 0 :(得分:2)

在所有情况下,如果有99.999%的计算机告诉您找不到东西,则原因是实际上没有东西。那么,您是否100%确定服务器上存在这些命令?

在其他情况下,原因是东西在那儿,但不在正确的地方。您是否100%确定这些命令位于root用户的$PATH中?

答案 1 :(得分:0)

我做了一个脚本,该脚本也做了同样的工作(连接到UNIX计算机并使用Powershell执行命令),我必须这样做:

 echo y | & $Plinkpath -P 22 -v $User@$server -pw $passw "$commands $($target)"

$ commands 所在的位置:

/usr/local/bin/sudo /usr/sbin/userdel

因为sudo和userdel并不总是位于mi $ PATH中(如JörgW Mittag所说),所以我必须使用命令的完整路径。

希望这对您有用!