【问题标题】:plink with powershell commands not workingplink 与 powershell 命令不起作用
【发布时间】:2018-09-24 23:27:45
【问题描述】:

我有一堆 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 服务器获取输出,那将是很大的帮助。我只需要查询几个命令即可获得输出

【问题讨论】:

    标签: powershell powershell-3.0


    【解决方案1】:

    在 99.999% 的情况下,如果计算机告诉您它找不到某物,原因是,该物实际上并不存在。那么,您是否 100% 确定这些命令存在于您的服务器上?

    在其余情况下,原因是,东西在那里,但不在正确的位置。您是否 100% 确定这些命令在 root 的 $PATH 中?

    【讨论】:

    • 感谢您的回复。 $PATH 是什么意思?是的,这些命令存在,因为当我直接对服务器进行腻子处理时,我可以直接使用这些命令
    【解决方案2】:

    我制作了一个同样的脚本(连接到 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örg W Mittag 所说),我必须使用命令的完整路径。 希望这对你有用!

    【讨论】:

    • 感谢您的回复。你能告诉我这里的 $target 是什么吗
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-07
    • 1970-01-01
    相关资源
    最近更新 更多