使用PowerShell将文件上传到SFTP

康斯坦丁五世

我们被要求设置从我们的一台服务器到SFTP站点的自动上传。每个星期一早上都会有一个文件从数据库导出到文件管理器,他们希望文件在星期二上载到SFTP。我们当前使用的身份验证方法是用户名和密码(我相信也可以选择拥有密钥文件,但是选择了用户名/密码选项)。

我设想的方法是让脚本坐在服务器上,该脚本将由Windows Task Scheduler触发,以在特定时间(星期二)运行,该脚本将抓取有问题的文件上传到SFTP,然后将其移动到用于备份的不同位置。

例如:

  • 本地目录: C:\FileDump

  • SFTP目录: /Outbox/

  • 备份目录: C:\Backup

在这一点上,我尝试了几件事,但WinSCP和SFTP PowerShell Snap-In都是其中之一,但是到目前为止,对我来说没有任何作用。

这将在Windows Server 2012R2上运行。
当我运行Get-Host控制台时,主机版本为4.0。

谢谢。

乔恩·Dechiro

当前没有内置的PowerShell方法可以执行SFTP部分。您将必须使用诸如psftp.exe之类的东西或诸如Posh-SSH之类的PowerShell模块。

这是使用Posh-SSH的示例

# Set the credentials
$Password = ConvertTo-SecureString 'Password1' -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ('root', $Password)

# Set local file path, SFTP path, and the backup location path which I assume is an SMB path
$FilePath = "C:\FileDump\test.txt"
$SftpPath = '/Outbox'
$SmbPath = '\\filer01\Backup'

# Set the IP of the SFTP server
$SftpIp = '10.209.26.105'

# Load the Posh-SSH module
Import-Module C:\Temp\Posh-SSH

# Establish the SFTP connection
$ThisSession = New-SFTPSession -ComputerName $SftpIp -Credential $Credential

# Upload the file to the SFTP path
Set-SFTPFile -SessionId ($ThisSession).SessionId -LocalFile $FilePath -RemotePath $SftpPath

#Disconnect all SFTP Sessions
Get-SFTPSession | % { Remove-SFTPSession -SessionId ($_.SessionId) }

# Copy the file to the SMB location
Copy-Item -Path $FilePath -Destination $SmbPath

一些其他注意事项:

  • 您必须下载Posh-SSH模块,您可以将其安装到用户模块目录(例如C:\ Users \ jon_dechiro \ Documents \ WindowsPowerShell \ Modules)中,然后使用名称进行加载或将其放置在任何位置并像我一样加载在上面的代码中。
  • 如果脚本中的凭据不可接受,则必须使用凭据文件。如果您需要帮助,我可以提供一些详细信息或为您提供一些链接。
  • 根据需要更改路径,IP等。

那应该给您一个体面的起点。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法使用pysftp将文件夹上传到Sftp

来自分类Dev

bash脚本将文件上传到sftp

来自分类Dev

使用Powershell将文件上传到100个Azure VM

来自分类Dev

使用 PHP 将本地文件夹中的所有文件上传到 SFTP

来自分类Dev

使用VB.NET将文件上传到SFTP服务器(Visual Basic)

来自分类Dev

通过网站将文件上传到SFTP服务器

来自分类Dev

将所有与通配符匹配的文件上传到SFTP

来自分类Dev

使用SSH.Net将GzipStream上传到SFTP

来自分类Dev

使用 gsutil 将文件上传到 GCP

来自分类Dev

使用Paramiko将新文件上传到SFTP服务器,而不必覆盖现有文件

来自分类Dev

使用PowerShell使用元数据将文件上传到SharePoint Online

来自分类Dev

使用PowerShell和OData API将文件上传到SharePoint 2010

来自分类Dev

使用Powershell将文件上传到一个驱动器

来自分类Dev

Powershell:使用System.Net.WebClient.UploadFile将文件上传到SharePoint时出现WriteErrorException

来自分类Dev

Azure Powershell - 如何使用“只写”共享访问签名 (SAS) 将文件上传到 Blob 存储?

来自分类Dev

如何使用Parallel.ForEach循环将文件上传到SFTP服务器以获得更好的性能

来自分类Dev

文件上传到SFTP失败(Apache VFS)

来自分类Dev

WinSCP将文件上传到远程SFTP错误:“无法创建远程文件–权限被拒绝”

来自分类Dev

使用PHP将文件上传到FTP而不损坏文件

来自分类Dev

无法使用PHP将文件上传到文件夹

来自分类Dev

将文件上传到前端

来自分类Dev

将文件上传到Django

来自分类Dev

通过PHP(phpseclib)将文件上传到SFTP服务器

来自分类Dev

通过PHP SSH2将文件从本地上传到SFTP

来自分类Dev

使用PowerShell的WinSCP会将目录添加到我要上传到的SFTP站点

来自分类Dev

使用Guzzle 6将文件上传到API端点

来自分类Dev

使用NodeJS将文件上传到Amazon S3

来自分类Dev

如何使用OneDrive REST API将文件上传到OneDrive?

来自分类Dev

使用Laravel将CSV文件上传到MySQL

Related 相关文章

  1. 1

    无法使用pysftp将文件夹上传到Sftp

  2. 2

    bash脚本将文件上传到sftp

  3. 3

    使用Powershell将文件上传到100个Azure VM

  4. 4

    使用 PHP 将本地文件夹中的所有文件上传到 SFTP

  5. 5

    使用VB.NET将文件上传到SFTP服务器(Visual Basic)

  6. 6

    通过网站将文件上传到SFTP服务器

  7. 7

    将所有与通配符匹配的文件上传到SFTP

  8. 8

    使用SSH.Net将GzipStream上传到SFTP

  9. 9

    使用 gsutil 将文件上传到 GCP

  10. 10

    使用Paramiko将新文件上传到SFTP服务器,而不必覆盖现有文件

  11. 11

    使用PowerShell使用元数据将文件上传到SharePoint Online

  12. 12

    使用PowerShell和OData API将文件上传到SharePoint 2010

  13. 13

    使用Powershell将文件上传到一个驱动器

  14. 14

    Powershell:使用System.Net.WebClient.UploadFile将文件上传到SharePoint时出现WriteErrorException

  15. 15

    Azure Powershell - 如何使用“只写”共享访问签名 (SAS) 将文件上传到 Blob 存储?

  16. 16

    如何使用Parallel.ForEach循环将文件上传到SFTP服务器以获得更好的性能

  17. 17

    文件上传到SFTP失败(Apache VFS)

  18. 18

    WinSCP将文件上传到远程SFTP错误:“无法创建远程文件–权限被拒绝”

  19. 19

    使用PHP将文件上传到FTP而不损坏文件

  20. 20

    无法使用PHP将文件上传到文件夹

  21. 21

    将文件上传到前端

  22. 22

    将文件上传到Django

  23. 23

    通过PHP(phpseclib)将文件上传到SFTP服务器

  24. 24

    通过PHP SSH2将文件从本地上传到SFTP

  25. 25

    使用PowerShell的WinSCP会将目录添加到我要上传到的SFTP站点

  26. 26

    使用Guzzle 6将文件上传到API端点

  27. 27

    使用NodeJS将文件上传到Amazon S3

  28. 28

    如何使用OneDrive REST API将文件上传到OneDrive?

  29. 29

    使用Laravel将CSV文件上传到MySQL

热门标签

归档