我正在尝试在 Windows 10 上使用 SFTP 和 PowerShell 将文件从本地目录上传到 Azure Blob 容器。我决定使用 Posh-SSH 模块来完成此任务。但是,我遇到了 PowerShell 无法识别 Posh-SSH cmdlet(Set-SFTPFile、Get-SFTPFile)的问题。这是我迄今为止尝试过的:
但是,我收到一条错误,表明术语“Set-SFTPFile”未被识别为 cmdlet、函数、脚本文件或可操作程序的名称。
我通过检查Get-Module -ListAvailable Posh-SSH确认Posh-SSH已安装,这表明该模块已安装。
Windows 11 PowerShell版本:5.1也在7中尝试过 Posh-SSH 版本:3.1.3
在 PowerShell 中无法识别用于 SFTP 上传到 Azure Blob 容器的 Posh-SSH Cmdlet。
Get-SFTPFile
cmd 已替换为 get-sftpitem
。
您可以尝试使用
Get-SFTPFile
和 Get-SFTPItem
,而不是使用 Set-SFTPItem
cmdlet。
Install-Module -Name Posh-SSH -Scope CurrentUser -Force
Import-Module Posh-SSH
$password = ConvertTo-SecureString “password” -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential (“user1”, $password)
$Test = New-SFTPSession -ComputerName " 10.80.1.81" -Credential $Credential -Verbose:($PSBoundParameters["Verbose"] -eq $true) -ErrorAction "Stop"
New-SFTPItem -SFTPSession $Test -Path "Path to file" -ItemType "File"
Set-SFTPItem -SFTPSession $Test -Destination "somedestination" -Path "somefile" -Force -Verbose:($PSBoundParameters["Verbose"] -eq $true) -ErrorAction "Stop"
回复: