私はWinSCPのは、PowerShellを使用してファイルの転送を自動化しようとしています。 .NETアセンブリをインストールしました。私が追加したコードでは、プライバシーのために資格情報とホスト名を取り出しました。また、WinSCPnet.dll
へのフルパスも使用しています。ここで私が得ているエラーは、次のとおりです。WinSCPの.NETアセンブリ - SessionOptionsの作成 - 指定された値が有効でないか、またはプロパティは読み取り専用です
Error: The value supplied is not valid, or the property is read-only. Change the value, and then try again.
$sessionOptions
は、第五行で定義された場合、私はこれを取得しています。私はこれを実行するために何ができるかの任意のアイデア?
try
{
Add-Type -Path "WinSCPnet.dll"
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
Protocol = [WinSCP.Protocol]::Sftp
HostName = "HostName"
UserName = "UserName"
Password = "Password"
SshHostKeyFingerprint = "ssh-rsa 2048 Fingerprint here"
}
$session = New-Object WinSCP.Session
try
{
# Connect
$session.Open($sessionOptions)
# Upload files
$transferOptions = New-Object WinSCP.TransferOptions
$transferOptions.TransferMode = [WinSCP.TransferMode]::Binary
$transferResult =
$session.PutFiles("Source", "Destination", $False, $transferOptions)
# Throw on any error
$transferResult.Check()
# Print results
foreach ($transfer in $transferResult.Transfers)
{
Write-Host ("Upload of {0} succeeded" -f $transfer.FileName)
}
}
finally
{
# Disconnect, clean up
$session.Dispose()
}
exit 0
}
catch [Exception]
{
Write-Host ("Error: {0}" -f $_.Exception.Message)
exit 1
}