You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用WinSCP .NET程序集时PreserveTimestamp属性找不到问题求助

问题解决:WinSCP .NET程序集PreserveTimestamp属性找不到错误

错误原因

你直接在Session对象上设置PreserveTimestamp是错误的——该属性不属于Session类,而是**TransferOptions传输选项类**的属性。同时服务器不支持时间戳保留操作,需要在传输配置中关闭该功能。

正确设置方式及修改后的脚本

将PreserveTimestamp设置到TransferOptions实例中,并在调用PutFiles时传入该选项:

# Load WinSCP .NET assembly
Add-Type -Path "WinSCPnet.dll"

# Setup session options
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
    Protocol = [WinSCP.Protocol]::Sftp
    HostName = "[server IP]"
    UserName = "[username]"
    Password = ""
    SshHostKeyFingerprint = "ssh-rsa 1024 ...="
}

# 若需要忽略权限错误,可添加以下配置
# $sessionOptions.AddRawSettings("IgnorePermissionErrors", "1")

$session = New-Object WinSCP.Session

try
{
    # Connect
    $session.Open($sessionOptions)

    # 创建传输选项并关闭时间戳保留
    $transferOptions = New-Object WinSCP.TransferOptions
    $transferOptions.PreserveTimestamp = $False

    # 上传时传入传输选项
    $session.PutFiles("filename.xlsx", "/destination/", $False, $transferOptions).Check()
}
finally
{
    # Disconnect, clean up
    $session.Dispose()
}

关键说明

  • PutFiles方法的第四个参数为TransferOptions实例,必须正确传入才能让配置生效
  • 若仍有权限相关错误,可在SessionOptions中添加$sessionOptions.AddRawSettings("IgnorePermissionErrors", "1")开启忽略权限错误选项

内容的提问来源于stack exchange,提问作者user2738776

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 12:58:15