如何解决使用Powershell将文件从团队复制到文件服务器
我正在尝试将xlsx文件从“团队”频道复制到文件服务器上的某个位置。
我在网上看到过各种建议Invoke-WebRequest "https://teams.microsoft.com/l/file/rest of URL here" -OutFile C:\Test\CricketQuiz.xlsx
的文章。尽管这样做可以在所需的文件位置查看文件,但由于出现此错误,我实际上无法打开它:
尝试本文https://blog.jourdant.me/post/3-ways-to-download-files-with-powershell中建议的方法时,我遇到相同的错误。
$url = "https://teams.microsoft.com/l/file/rest of my URL here"
$output = "C:\Test\SportsQuiz.xlsx"
$start_time = Get-Date
$wc = New-Object System.Net.WebClient
$wc.DownloadFile($url,$output)
我想对于有更多经验的人来说,这是相对容易解决的事情。
解决方法
这里的问题是,您拥有的链接(“团队”链接)根本不是指向文件的直接链接-它是指向Teams客户端内部文件的嵌入式版本的链接(基本上像链接)。要实际下载文件,请尝试以下操作:
- 从您获得的URL中,解析出查询字符串的“ objectUrl”部分。例如,我有:
https://teams.microsoft.com/l/file/[guid]?tenantId=[guid2]&fileType=xlsx&objectUrl=https%3A%2F%2F[tenantname].sharepoint.com%2Fsites%2FHR%2FShared%2520Documents%2FEmployee%2520Sentiment%2520Analysis.xlsx&serviceName=recent
您想要(在我的示例中):https%3A%2F%2F [tenantname] .sharepoint.com%2Fsites%2FHR%2FShared%2520Documents%2FEmployee%2520Sentiment%2520Analysis.xlsx
-
然后您需要对其进行查询字符串解码,以获取(例如)https:// [tenantname] .sharepoint.com / sites / HR / Shared%20Documents / Employee%20Sentiment%20Analysis.xlsx
-
最后,您应该使用PnP-PowerShell模块的Get-PnPFile下载文件。不过,这本身就是几个步骤:
3.1您需要使用Connect-PnPOnline连接会话,但是还需要连接到正确的“ SPWeb”。在这种情况下,它将是Connect-PnPOnline https://[tenantname].sharepoint.com/sites/HR
3.1之后,您可以下载文件,但是您需要再次对其进行url解码,以摆脱%20和类似内容,例如:
Get-PnPFile -Url "/Shared Documents/Employee Sentiment Analysis.xlsx" -AsFile -Path "c:\temp\"
这将为您提供c:\ temp
中的Employee Sentiment Analysis.xlsx的副本(在我的示例中)显然,这可以全部自动化,例如查询字符串解码,connect-pnp凭据等,但是希望这可以使您走上正确的道路。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。