使用 PowerShell 将文件上传到 SFTP

2024-01-22

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

我设想的方式是在服务器上放置一个脚本,该脚本将由 Windows 任务计划程序触发,在特定时间(星期二)运行,该脚本将抓取有问题的文件,将其上传到 SFTP,然后将其移动到用于备份目的的不同位置。

例如:

  • 本地目录:C:\FileDump

  • SFTP 目录:/Outbox/

  • 备份目录:C:\Backup

此时我尝试了一些东西 WinSCP 就是其中之一SFTP PowerShell 管理单元 http://www.k-tools.nl/index.php/download-sftp-powershell-snap-in/但到目前为止,没有什么对我有用。

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

Thanks.


您没有告诉我们 WinSCP 有什么具体问题,所以我只能重复 WinSCP 文档中的内容。

  • 下载 WinSCP .NET 程序集 https://winscp.net/eng/download.php.
    目前最新的包是WinSCP-6.1.2-Automation.zip;

  • Extract https://winscp.net/eng/docs/library_install the .zip沿着你的脚本存档;

  • 使用这样的代码(基于官方PowerShell 上传示例 https://winscp.net/eng/docs/library_powershell#example):

    # Load WinSCP .NET assembly
    Add-Type -Path "WinSCPnet.dll"
    
    # Setup session options
    $sessionOptions = New-Object WinSCP.SessionOptions -Property @{
        Protocol = [WinSCP.Protocol]::Sftp
        HostName = "example.com"
        UserName = "user"
        Password = "mypassword"
        SshHostKeyFingerprint = "ssh-rsa 2048 xxxxxxxxxxx...="
    }
    
    $session = New-Object WinSCP.Session
    
    try
    {
        # Connect
        $session.Open($sessionOptions)
    
        # Upload
        $session.PutFiles("C:\FileDump\export.txt", "/Outbox/").Check()
    }
    finally
    {
        # Disconnect, clean up
        $session.Dispose()
    }
    

您可以让 WinSCP 为您生成用于上传的 PowerShell 脚本:

  • 使用 WinSCP GUI 登录到您的服务器;
  • 导航到远程文件面板中的目标目录;
  • 在本地文件面板中选择要上传的文件;
  • 调用Upload命令;
  • On the 传输选项对话框 https://winscp.net/eng/docs/ui_copy, go to 传输设置 > 生成代码;
  • 在生成传输代码对话框中,选择.NET 汇编代码 tab https://winscp.net/eng/docs/ui_generateurl#code;
  • Choose 电源外壳语言。

您将获得与上面类似的代码,其中填写了所有会话和传输设置。

(我是WinSCP的作者)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 PowerShell 将文件上传到 SFTP 的相关文章

  • 使用 python 和 selenium 自动化 Google 登录显示“此浏览器或应用程序可能不安全”

    我尝试使用 Gmail 或任何 Google 服务登录 但显示以下 此浏览器或应用程序可能不安全 消息 我还尝试执行诸如在我的 acc 中启用不太安全的应用程序之类的选项 但它不起作用 然后我创建了一个新的谷歌帐户 它对我有用 但我的旧配件
  • 上传非常大的文件(>5GB)

    我需要你的帮助 我想用 HTML JQuery 和 PHP 创建一个上传脚本 是否可以编写一个可以上传非常大的文件 gt 5 GB 的脚本 我已经尝试使用 FileReader FormData 和 Blobs 但即使使用这些 我也无法上传
  • 正确配置JDK环境变量后仍然找不到java命令

    我在 Windows 虚拟机启动时安装 JDK 使用 cloudinit 用户数据将 PowerShell 脚本传输到 Windows 计算机 然后运行该脚本来安装 JDK softwares Get ItemProperty HKLM S
  • 一行 PowerShell 脚本

    我创建了这个基本的单行 PowerShell 脚本 如果我运行以下命令 该脚本就会执行adAD 的 cmdlet 然后是查询的其余部分 但是尝试将它们一起运行时 它似乎只加载了 cmdlet 而没有执行 cmd 的其余部分 powershe
  • Powershell SQL Server数据库连接和连接超时问题

    我有一个连接到 SQL Server 2012 数据库的 powershell 脚本 该脚本运行 SQL 查询并将结果集放入数据表中 以将格式化的电子邮件发送给相关方 下面是问题所在的代码片段 CBA New Object System D
  • Mac OS X 中 Bash 脚本中的 SFTP 命令

    我需要使用 SFTP 和 SSH 从 Mac 主机将文本文件传输到远程 PC freeSSH 这两个连接在本地网络中 那么有没有办法从 Bash 脚本内部运行 SFTP 命令 使用提供的用户名和密码 我已经尝试过一些脚本expect 但我没
  • 并行启动服务

    我有一个脚本可以检查不同服务器上的某些服务是否已启动 如果没有启动 该脚本应该启动该服务 问题是 它不会并行启动服务 而是等待每个服务启动 Code server list Get Content path D Path list of s
  • 是否可以要求 Powershell 在 Windows 终端而不是新窗口中启动进程

    如果我在 Windows 终端 PowerShell 选项卡中运行 start process Powershell Verb runas 它将创建一个新窗口 有没有办法在 Windows 终端中创建选项卡 您必须使用 Windows 终端
  • PowerShell 模块中忽略 Write-Verbose

    我希望使用Write Verbose脚本和函数中的命令行开关 它在脚本 ps1 文件中按预期工作 但在模块 psm1 文件中则不然 该 commandlet 在模块中被忽略 运行以下脚本 PS gt scaffold ps1 verbose
  • 未定义,当从 Selenium 触发时,Chrome 通知中未定义

    我正在致力于自动化一个用 Python 编写的网站 并使用 Angular 其中有很多确认通知 我遇到的问题是 Behat 似乎无法识别这些通知 更不用说允许我与它们交互了 我附上了通知的屏幕截图 以及 Behat 生成的 未定义 未定义
  • Powershell 添加的字符串类型的 ParameterizedProperty Chars 属性是什么?

    请注意 C gt Get Member MemberType eq ParameterizedProperty TypeName System String Name MemberType Definition Chars Paramete
  • 尝试在 powershell 5.1 中使用here-strings 但不起作用

    当我尝试在 PS 5 1 中使用此处字符串时 出现红色曲线 我缺少什么 function Main csv test1 test2 echo csv Main Error White space is not allowed before
  • powershell stdin 管道和重定向

    你好 我一直在制作一个小的跨平台脚 本 我可以将其卷曲并通过管道传输到bash和Powershell中 基本思想是服务器向解释器发送一个命令 然后它给出一个命令将所有输出重定向到标准输出 bash 中的一个例子是 some commands
  • 将变量传递给 Start-Job

    我必须在这里遗漏一些非常简单的东西 这是一个非常基本的脚本来说明我正在尝试的内容 Computers comp1 comp2 ScriptBlock New Item C Temp C txt Force Foreach C in Comp
  • Pester 没有捕获抛出的错误

    当我运行以下纠缠测试时 我希望它能够捕获预期的错误 但事实并非如此 但是 当我使用不同的函数和不同的 throw 语句运行测试时 它会起作用 纠缠测试 Describe Remove GenericCredential Function T
  • 西库里间歇性故障

    我已将 Sikuli 与我的 Selenium 项目集成 为了学习 我使用简单的 gmail 登录应用程序使用 Sikuli 来实现自动化 好吧 我能够执行脚本 现在假设我正在用户名字段中输入一些内容 有时 鼠标不会悬停在用户名字段上 所以
  • 有没有办法在 MS Windows(Powershell 或 CMD)的 ripgrep 中转义引号?

    我想找一个字符串 Hello Hello 以双引号开头 在文本文件中使用ripgrep 通常 在 Bash 或 ZSH 中 这可以通过用反斜杠转义或用单引号括起来来实现 rg Hello rg Hello 然而 在 MS Windows P
  • 在 Android 中上传文件出现内存不足错误

    我的上传代码如下 String end r n String twoHyphens String boundary try URL url new URL ActionUrl HttpURLConnection con HttpURLCon
  • PowerShell中有解析TOML文件的模块吗?

    我正在尝试寻找一个TOML https toml ioPowerShell 的文件解析器 我也找不到任何有关它的信息PowerShell 画廊 https www powershellgallery com 或在预安装的 PowerShel
  • 将带有星号的注册表项传递给测试路径

    我想通过以下方式运行此注册表路径Test Path在 PowerShell 中 但它包含一个星号 该星号在注册表中有效 但在 Windows 路径中无效 问题是 当我通过它时 Test Path将星号视为通配符 因此这需要非常非常长的时间

随机推荐

  • 将元描述和开放图谱协议描述合并到一个标签中

    是否可以将元描述和开放图协议描述结合起来 当它们包含相同的内容时合而为一 是的 您可以将它们结合起来 为了测试它 我制作了下面的简单 HTML 页面 将其上传到服务器 然后通过 Facebook 运行该页面网址检查器 https
  • 更新 LayoutView 的模型

    JSBin 链接 http jsbin com rosadomisa edit html js console output 单击 Clicks 链接可查看显示更新后的模型数据的控制台 但原始显示的 HTML 不会更改 更新 LayoutV
  • 将 Windows 对话框错误消息重定向到控制台

    有谁知道如何重定向 捕获模式 Windows 错误对话框 对于仅尝试运行程序并捕获退出代码和 stdout stderr 输出的非交互式命令行程序来说 这确实是个问题 此问题的最新实例是一个模态 Windows 对话框 其形式如下 The
  • AWS S3 最大文件和上传大小

    AWS S3 文档说 单个 Amazon S3 对象的大小范围最小为 0 字节到最大 5 TB 最大的物体可以 一次 PUT 上传的大小为 5 GB 如果我只能上传 5GB 的文件 如何存储 5TB 的文件 根据文档here http do
  • Python 3.5 async for 阻止 ioloop

    我有一个带有两个处理程序的简单 aiohttp 服务器 第一个在中进行一些计算async for环形 第二个仅返回文本响应 not so long operation以最慢的递归实现返回第 30 个斐波那契数 大约需要一秒钟 def not
  • Akka.Net 发送巨大消息(最大帧大小)

    我有一个关于增加最大帧大小和发送 接收缓冲区大小值的问题 他们的高度有限制吗 我将大量数据传递到系统中 比如 20mb 然后用于计算一些结果并返回 将上述参数设置为 100mb 会导致消息被丢弃 在这种情况发生之前我可以通过的最大块大约是
  • 如何在 LDAP 中按 DN 进行搜索?

    我正在从 LDAP 中提取有关用户的信息 这包括 directReports 它是完整的CN cnBlah OU ouBlah DC dcBlah形式 我正在尝试再次查找有关该记者的信息 到目前为止 我能够真正找到所述用户的唯一方法是打破C
  • 关于“==”运算符行为的解释

    在下面的非常简单的示例中 我无法理解 运算符的行为 A lt c 10 20 10 10 20 30 B lt c 40 50 60 70 80 90 df lt data frame A B df df A c 10 20 it retu
  • mongodb ISODate 问题

    我正在使用java IDE是eclipse 在mongodb上查询 下面是我的java代码 DBObject query new BasicDBObject ObjectId id new ObjectId 529f280b90ee58cb
  • SpringBoot:配置生产环境与开发环境

    我在使用 SpringBoot 1 5 1 时遇到问题 我已经创建了application properties and application dev properties对于我的开发环境 主要区别在于持久性 在生产中 applicati
  • GruntJS - grunt 构建后错误的图像路径

    Grunt 弄乱了我的缩小 CSS 我不知道为什么以及如何避免它 简而言之 在缩小之前我有一些像这样的背景图像 head image height 380px background url images head1 bg png repea
  • MYSQL排序与主义

    如本文所述question https stackoverflow com questions 41126279 doctrine orm order by annotations object fields并回答 不可能 我提出了一个新问
  • 倒计时栏 Android 示例

    有什么帮助可以在进度条上显示这个简单的倒计时吗 new CountDownTimer 30000 1000 public void onTick long millisUntilFinished mTextField setText sec
  • 内部函数(python)的文档字符串是否必要? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在Python中 我们用以下划线开头来指定内部函数 私有方法 这些函数是否应该使用文档字符串进行记录 是否必需 我的意思是正式文档 而不是帮助代
  • 无法使用 ssl 与 PDO 连接,但使用 ssl 的 mysqli 可以工作

    我们通过创建证书 更新 my cnf 创建具有正确权限的用户并需要 ssl 重新启动服务来设置带有 SSL 的 mysql 并通过远程连接验证它在服务器端和客户端 通过 mysql 命令行 是否正常工作 我还验证了 PDO 在完全相同的设置
  • 如何绘制参数的不同值的分布?

    我有以下脚本 library ggplot2 values lt c 0 1 0 15 0 2 0 3 0 5 1 1 5 2 2 5 colours lt palette 1 length values p lt ggplot data
  • 如何在 UipageViewController 中快速预加载下一个和上一个视图

    由于经过大量搜索和 RND 以及许多不同的代码实现后 滑动延迟问题尚未解决 因此我猜预加载下一个和上一个视图控制器将解决我的滑动延迟问题 如何在滑动之前加载下一个和上一个视图 经过长时间的 rnd 和搜索后没有找到解决方案 在显示可见控制器
  • 如何添加 favicon gatsby-config.js?

    所以我尝试在我的博客中添加图标 代码如下 在我的 gatsby config js 中 module exports siteMetadata title Chatbiz Blog plugins gatsby plugin react h
  • 是否有任何解决方法可以禁用 Google 地球插件的“缩放时自动倾斜”功能?

    最新版本的 Google 地球附带了一项名为 缩放时自动倾斜 的功能 如果启用 当您放大到靠近地面时 Google 地球会自动将相机向地平线倾斜 可以从 GUI 中禁用此功能 首选项 gt 导航选项卡 不幸的是 到目前为止我还没有找到一种方
  • 使用 PowerShell 将文件上传到 SFTP

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