我有一个脚本正在上传到 Apple 校园教务管理。它将连接到服务器,我可以使用获取/设置位置命令在上传服务器上导航,但是我无法设置该项目,只能得到一个超级通用错误。我有一个几乎相同的脚本上传到 smart 并且它有效。知道从哪里开始寻找吗?
我仍然不太精通脚本编写,我几乎只是依赖于这份工作,所以总的来说,我可能会遇到很多问题。
我尝试了各种方法,例如上传路径的变化、设置超时、将上传路径中的所有“”交换为“/”。
服务器是基于 $thissession 中存储的会话信息的 paramiko 服务器。
函数后面的异常:
TargetSite : Renci.SshNet.Sftp.SftpFileAttributes RequestLStat(System.String)
Message : Failure
Data : {}
InnerException :
HelpLink :
Source : Renci.SshNet
HResult : -2146233088
StackTrace : at Renci.SshNet.Sftp.SftpSession.RequestLStat(String path)
at Renci.SshNet.SftpClient.Exists(String path)
at SSH.SetSftpItem.ProcessRecord()
at System.Management.Automation.CommandProcessor.ProcessRecord()
Function Upload{
$fileName = "$outputFolder\asm.zip"
if (Test-Path $fileName) { Remove-Item $fileName }
Compress-Archive -Path $outputFolder\* -DestinationPath $fileName
$ftpFile = "<server path>\creds.json"
$ftpCreds = Get-Content $ftpFile| ConvertFrom-Json -AsHashtable
$Password = ConvertTo-SecureString $ftpCreds.password -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ($ftpCreds.username, $Password)
$SftpIp = $ftpCreds.uploadServer
$ThisSession = New-SFTPSession -ComputerName $SftpIp -Credential $Credential -AcceptKey -ConnectionTimeout 120 -OperationTimeout 120 -Verbose -ErrorVariable SessionERR
$remotePath = '/dropbox'
try{
Set-SFTPItem -SessionId ($ThisSession).SessionId -Path $fileName -Destination $remotePath -Force -Verbose -Debug
}
catch{
ConvertTo-Json $_
}
finally{
Remove-SFTPSession -SessionId ($ThisSession.SessionId)
}
#>
}
我只是想跟您跟进此事。几个月来,我的 Apple School Manager 服务器一直遇到完全相同的问题。我的脚本运行良好,上传始终有效。我认为它一年前就停止工作了,从那以后我就无法使用我的 Powershell 脚本上传 zip 文件。我已经尝试了所有我能找到的方法,但都无济于事。
我们现在得到的只是一条通用的“失败”错误消息,即使有详细的调试信息。
我们必须手动上传,因为如果这样的话,因为使用任何客户端都效果很好。但我希望我们的自动化能够像以前一样工作。
苹果在这方面缺乏帮助真的很难接受。