如何在PowerShell中使用Get-PnPFile按ID下载SharePoint Online文件
PnP PowerShell 没有直接通过Item ID下载文件的参数,你需要先通过Item ID查询到对应文件的服务器相对路径,再调用原有下载命令即可。
完整可运行示例
# 预先定义变量 $siteUrl = "https://你的租户.sharepoint.com/sites/目标站点" $docLibraryName = "文件所属的文档库名称" $fileId = 456 # 替换为从数据库读取的实际fileId值 $localSaveFolder = "C:\本地保存文件夹路径" # 连接SharePoint站点(已连接可跳过该步) Connect-PnPOnline -Url $siteUrl -Interactive # 根据Item ID查询文件项,读取内置字段获取文件路径和原始文件名 $targetFileItem = Get-PnPListItem -List $docLibraryName -Id $fileId -Fields "FileRef","FileLeafRef" $fileRelativeUrl = $targetFileItem["FileRef"] $rawFileName = $targetFileItem["FileLeafRef"] # 执行下载 Get-PnPFile -Url $fileRelativeUrl -Path $localSaveFolder -Filename $rawFileName -AsFile -Force
补充说明
- 示例中用到的
FileRef(文件服务器相对路径)和FileLeafRef(原始文件名)都是SharePoint文档库的内置字段,不需要额外创建即可直接读取 - 如果你不知道文档库名称,仅知道文件夹路径,可以先通过
Get-PnPFolder -Url "文件夹的站点相对路径"获取文件夹所属的库信息,再代入上面的查询即可 - 认证方式可根据运行场景调整,无人值守场景可替换为应用程序认证、托管标识认证等非交互方式
内容的提问来源于stack exchange,提问作者Sniipe
相关产品推荐
相关产品推荐

