首页 > 解决方案 > Jenkins 部署 - Powershell SCP 脚本

问题描述

晚上好,

我正在尝试编写一个 Powershell 脚本,该脚本将通过 SCP 连接到远程服务器并上传或下载文件/文件夹。最终,这是我希望 Jenkins 运行的脚本。

到目前为止,我正在使用 Posh-SSH 并取得了很好的成功。唯一的问题是,无论我到目前为止尝试了什么,它总是会提示我输入我的凭据。显然,这使得它不是完全自动化的。

我附上了一些我尝试过的东西。希望有人可以帮助我解决这个问题!

我正在测试的基本命令:

get-scpfolder -computername '111.111.111.111' -credential $credential 
-remotefile "/var/myFolder" -localfile 'C:\Users\Me\destFolder'

同样,这有效,但它需要我输入我的凭据。

我在网上看到这个命令:

$Password = "pass"
$User = "admin"
$ComputerName = "111.111.111.111"
$Command = "get-scpfolder -computername $ComputerName -credential $Credentials -localfolder 'C:\Users\Me' -remotefolder '/var/destFolder"

$secpasswd = ConvertTo-SecureString $Password -AsPlainText -Force
$Credentials = New-Object System.Management.Automation.PSCredential($User, $secpasswd)

$SessionID = New-SSHSession -ComputerName $ComputerName -Credential $Credentials #Connect Over SSH

Invoke-SSHCommand -Index $sessionid.sessionid -Command $Command # Invoke Command Over SSH

但是,这将返回 ExitStatus 1 并且没有任何反应。例如,我已经尝试了 $Command 的一些变体,包括凭据与否,但我无法让它工作。

标签: powershelljenkinsscp

解决方案


推荐阅读