使用 PowerShell 将文件上传到 SFTP
Windows 和 Mac 用户发现可以通过命令行界面运行的工具非常有限。大多数基于 GUI 的应用程序为所有用户提供低脚本和自动化功能。
PowerShell 用于弥合 Windows 用户和类 Linux 系统用户之间的差距。PowerShell 为脚本编写、自动化需求、CI/CD 系统管理等提供了一个命令行界面。
PowerShell 是 Microsoft 的产品,它为 Windows 和 Mac 用户提供了满足其脚本要求的灵活性。但是,在使用 PowerShell 时,你应该熟悉一些脚本命令和 PowerShell 独有的命令。
什么是 SFTP
SFTP 是用户常用的一种协议,用于将文件从一台计算机/服务器传输到另一台计算机/服务器。它是通用 FTP 协议的安全版本,可确保发送方和接收方之间的端到端文件加密。
SFTP 代表安全文件传输协议,是计算中最常用的文件传输方法之一。
使用 PowerShell 将文件上传到 SFTP 站点
我们的要求是使用 PowerShell 将文件按计划上传到 SFTP 站点。PowerShell 让用户可以毫无问题地运行预定脚本。
这可以通过几个步骤来解释。
- 将安排一个文件从数据库上传到 SFTP 站点。
- 建立身份验证以访问该站点。
- Windows 任务计划程序触发脚本在特定时间运行。
- 任务调度程序会抓取所需的文件并将其上传到 FTP 站点。
使用 WinSCP
通过 PowerShell 将文件上传到 SFTP 站点
WinSCP
是最流行的 SFTP 客户端之一,也是 Microsoft Windows 的 FTP 客户端。此工具可以将文件从计算机复制到远程文件服务器。
为此要求,我们必须首先下载 WinSCP .NET
程序集。
然后必须使用脚本提取文件。然后我们将根据官方的 WinSCP
上传示例此处创建如下脚本。
Add-Type -Path "WinSCPnet.dll"
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
Protocol = [WinSCP.Protocol]::Sftp
HostName = "example.com"
UserName = "user"
Password = "mypassword"
SshHostKeyFingerprint = "ssh-rsa 2048 xx...="
}
$session = New-Object WinSCP.Session
try
{
$session.Open($sessionOptions)
$session.PutFiles("C:\users\export.txt","/Outbox/").Check()
}
finally
{
$session.Dispose()
}
重要的是要记住所有这些都必须在 WinSCP
GUI 中完成,如下所示。
-
登录到
WinSCP
。 - 导航到远程位置的目标目录。
-
选择
上传命令
。 -
传输选项
>传输设置
>生成代码
>.NET 汇编代码
>PowerShell 语言
。
作为代码的输出,该文件将被上传到你指定的位置/站点,并最终清理以处理会话。
相关文章
在 PowerShell 中安装 NuGet 包
发布时间:2024/03/01 浏览次数:161 分类:编程语言
-
本文将了解发生错误的原因以及安装适用于 PowerShell 的 NuGet 提供程序的分步指南。
在 PowerShell 中 Ping 主机名列表和输出结果到 CSV
发布时间:2024/03/01 浏览次数:53 分类:编程语言
-
本教程将教你 ping 主机名列表并将结果输出到 PowerShell 中的 CSV。
以管理员身份运行 PowerShell 脚本
发布时间:2024/03/01 浏览次数:87 分类:编程语言
-
本文将展示如何在不输入管理员凭据的情况下以管理员权限运行 powershell 脚本。如果代码片段未在提升的 Windows PowerShell 中运行,则以下脚本将自行提升你的脚本。
使用 Windows PowerShell 启动进程
发布时间:2024/03/01 浏览次数:58 分类:编程语言
-
本文将解释 Start-Process cmdlet 是什么以及参数如何与 cmdlet 一起使用。本文还展示了使用 Start-Process cmdlet 的好处
使用 PowerShell 远程处理执行命令
发布时间:2024/03/01 浏览次数:144 分类:编程语言
-
本文将讨论 PowerShell 远程处理的工作原理、几个 PowerShell 远程处理命令,以及我们如何将其投入实际使用。我们还将区分它与许多类似 cmdlet 的优势。
在 PowerShell 中获取远程计算机上的注册表
发布时间:2024/03/01 浏览次数:109 分类:编程语言
-
本文将讨论如何在远程计算机上调用表达式、获取注册表值,以及如何将它们结合起来以在远程计算机上获取注册表值。
获取 PowerShell 脚本的当前位置
发布时间:2024/02/29 浏览次数:99 分类:编程语言
-
本文将讨论如何在不同版本的 PowerShell 脚本环境中获取 PowerShell 脚本的当前位置。