我正在使用以下命令将本地文件发送到我的 F 驱动器上映射的远程位置:
Start-BitsTransfer -Source C:\Source\*.* -Destination F:\Destination -Description "Backing up files to remote destination" -DisplayName "Full Backup $((Get-Date).ToString('yyyy-MM-dd'))" -TransferType Download
当进度大约为 70% 时,上传失败。
这是我收到的错误:
Start-BitsTransfer : Invalid Signature.
At C:\backup\MyBackUp.ps1:65 char:2
+ Start-BitsTransfer -Source C:\Source\*.* -Destination F:\Destination\ -Des ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Start-BitsTransfer], Exception
+ FullyQualifiedErrorId : StartBitsTransferCOMException,Microsoft.BackgroundIntelligentTransfer.Management.NewBitsTransferCommand
有什么建议或推荐吗?
谢谢。
答案1
这 Start-BitsTransfer 命令 可能不是最好的选择,正如其文档所述:
Start-BitsTransfer cmdlet 支持从服务器下载多个文件到客户端计算机,但它通常不支持从客户端计算机向服务器上传多个文件。如果您需要上传多个文件,可以使用 Import-Csv cmdlet 将输出传送到 Add-BitsFile cmdlet 以上传多个文件。或者,如果您需要上传多个文件,请考虑使用压缩文件 (.cab) 或压缩文件 (.zip)。
文档还说明了以下内容(我怀疑是错误的):
当您将文件上传到 HTTP 位置时,传输类型参数必须设置为上传。
可能会返回错误消息“无效签名”,因为服务器使用的凭证不被接受,例如,如果它是自签名的。
您可能能够使用该-SecurityFlags
参数来禁用错误,但文档中根本没有解释这些参数。以下内容可能会有所帮助:
IgnoreCertCNInvalid、IgnoreCertDateInvalid、IgnoreUnknownCA、IgnoreCertWrongUsage。
另外,你也可以使用 WebClient.UploadFile 方法,它不检查证书。