如何使用PnP PowerShell在ODB(个人站点)中复制文件?
ODB(个人站点)使用PnP PowerShell复制文件失败问题解决
问题背景
在普通SharePoint站点中,以下代码可正常执行:
Connect-PnPOnline -Url "https://tenant.sharepoint.com/sites/site1" -UseWebLogin Copy-PnPFile -SourceUrl "Shared Documents/1GB.csv" -TargetUrl "/sites/site2/Shared Documents" -Force
但在个人站点(ODB)执行同类操作时出现两种错误:
- 直接连接到个人站点执行复制,返回403错误:
Connect-PnPOnline -Url "https://tenant-my.sharepoint.com/personal/user_tenant_com" -UseWebLogin Copy-PnPFile -SourceUrl "1GB.csv" -TargetUrl "1GB_1.csv" -Force
- 连接到ODB根站点执行复制,返回"找不到文件或文件夹"错误:
Connect-PnPOnline -Url "https://tenant-my.sharepoint.com/" -UseWebLogin Copy-PnPFile -SourceUrl "personal/user_tenant_com/1GB.csv" -TargetUrl "personal/user_tenant_com/1GB_1.csv" -Force
原因分析
- 403权限问题:个人站点权限隔离性更强,即使是全局管理员,默认也没有访问普通用户个人站点的权限,必须先获取站点访问权限或使用用户自身账号登录。
- 路径错误:个人站点的文件默认存储在
Documents(界面显示"文档")库中,直接写文件名会找不到文件;且ODB根站点无法直接通过personal/user_tenant_com/xxx路径访问用户站点内的文件。
解决方法
方法1:使用目标用户自身账号执行
直接用目标个人站点所属用户的账号登录,代码调整为指定正确的文档库路径:
# 连接到用户个人站点 Connect-PnPOnline -Url "https://tenant-my.sharepoint.com/personal/user_tenant_com" -UseWebLogin # 复制Documents库下的文件到同库重命名 Copy-PnPFile -SourceUrl "Documents/1GB.csv" -TargetUrl "Documents/1GB_1.csv" -Force
方法2:使用管理员账号操作(需先授权)
- 登录SharePoint管理中心,找到目标用户的个人站点,进入站点权限设置。
- 添加管理员账号,授予完全控制权限。
- 执行上述调整路径后的代码即可。
大文件复制额外注意
对于1GB这类大文件,建议添加-NoWait参数异步执行,避免超时:
Copy-PnPFile -SourceUrl "Documents/1GB.csv" -TargetUrl "Documents/1GB_1.csv" -Force -NoWait
内容的提问来源于stack exchange,提问作者nav_jan
相关产品推荐
相关产品推荐

