我使用变量和pscp命令一直在努力。
ForEach ($Server in $Servers)
{
.\pscp.exe -pw $password create_ssh $myUsername@$Server:/home/$myUsername/create_ssh
.\plink.exe -pw $password $myUsername@$Server -C "uname -r"
}
输出
Local to local copy not supported
2.6.32-573.1.1.el6.x86_64
当我尝试指定主机名不使用变量时,传输文件没有任何问题。 但是,如果我尝试使用变量$ Server,我收到错误“不支持本地副本” 我认为变量本身可能存在问题但是。\ plink工作没有任何问题
我曾尝试使用逗号,转义@,完整路径等。似乎没有任何工作。 我不能使用winscp.dll,因为在这种特殊情况下我需要自动接受主机密钥(这是不安全的,但仅限于这种情况) - 这只是由pscp提供的。
非常感谢!
答案 0 :(得分:0)
我知道这已经很老了,但我偶然发现了这个问题。事实证明,您需要使用子表达式运算符$()
作为服务器变量,如下所示:
$($Server)
所以你的命令看起来像这样:
.\pscp.exe -pw $password create_ssh $myUsername@$($Server):/home/$myUsername/create_ssh
.\plink.exe -pw $password $myUsername@$($Server) -C "uname -r"