首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sharepoint online - MoveFile - pnp.powershell状态更新

Sharepoint online - MoveFile - pnp.powershell状态更新
EN

Stack Overflow用户
提问于 2021-11-10 20:50:47
回答 2查看 159关注 0票数 0

我正在尝试将文件夹/文件从一个sharepoint站点移动到另一个站点,但似乎无法在powershell脚本中使用Receive-PnPCopyMoveJobStatus

现在,我监控文件/文件夹移动的唯一方法是监控源的回收站是否有变化。我希望能够按需获得进展,或者在开放的powershell中始终如一。理想情况下,我希望看到百分比符号,甚至是详细选项。

下面是我总结的内容:

代码语言:javascript
复制
#Config Variables
$SiteURL = "https://<site>.sharepoint.com/
$SourceFolderURL= "sites/<site name>/<document library name>/<Folder or file location>"
$TargetFolderURL = "sites/<site name>/<document library name>"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -interactive

#Sharepoint Copy/Move operation feedback
$Test = "Move-PnPFile -SourceUrl $SourceFolderURL -TargetUrl $TargetFolderURL -Overwrite -noWait"
$jobStatus = "Receive-PnPCopyMoveJobStatus -Job $Test"

if($jobStatus.JobState -eq 0)
{
  Write-Host "Job finished"
}

引用:https://docs.microsoft.com/en-us/powershell/module/sharepoint-pnp/receive-pnpcopymovejobstatus?view=sharepoint-ps

我一直没有成功地运行这个程序。当我填写站点名称、库名称和实际站点时,我得到的结果看起来像是完成了,但没有反馈,文件也没有移动。所以基本上什么都没发生。

以下是对文件/文件夹移动有效的方法:

代码语言:javascript
复制
#Config Variables
$SiteURL = "https://<site>.sharepoint.com/"
$SourceFolderURL= "sites/<site name>/<document library>/<folder name>"
$TargetFolderURL = "sites/<site name>/<document library>"
 
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -interactive
 
#sharepoint online powershell move folder
Move-PnPFile -SourceUrl $SourceFolderURL -TargetUrl $TargetFolderURL -overwrite 


#Read more: https://www.sharepointdiary.com/2017/06/how-to-move-folder-in-sharepoint-online.html#ixzz7Bkp822M1

如果您能帮助我们修改此脚本,或者使用其他方法查看SharePoint上复制或移动操作的进度,我们将不胜感激!

EN

回答 2

Stack Overflow用户

发布于 2021-11-11 07:14:03

源url应类似于"<document library>/<file name>"请尝试以下脚本

代码语言:javascript
复制
$SiteURL = "https://<site>.sharepoint.com/sites/<sitesname>
$SourceFolderURL= "<document library name>/<file name>"
$TargetFolderURL = "<document library name>/<target file name>"

$job = Move-PnPFile -SiteRelativeUrl $SourceFolderURL -TargetUrl $TargetFolderURL -Overwrite
$jobStatus = Receive-PnPCopyMoveJobStatus -Job $result
if($jobStatus.JobState == 0)
{
  Write-Host "Job finished"
}
票数 0
EN

Stack Overflow用户

发布于 2021-11-11 19:09:35

您的非工作脚本包含:

代码语言:javascript
复制
$Test = "Move-PnPFile -SourceUrl $SourceFolderURL -TargetUrl $TargetFolderURL -Overwrite -noWait"
$jobStatus = "Receive-PnPCopyMoveJobStatus -Job $Test"

这两个变量值都是字符串。它们不做任何事情,除了exist,并且不会导致任何命令运行。因为JobState不是字符串的属性,所以$jobStatus.JobState将始终为null且不为零,因此永远不会满足if条件。

如果您想要运行这些命令,请不要将它们写成双引号内的字符串,而是就像您提到的文档中的那样。你可以实际运行它们,并捕获它们的输出,例如

代码语言:javascript
复制
$jobStatus = Receive-PnPCopyMoveJobStatus -Job $Test

您还可以复制和粘贴示例并更新参数值(尽管第二行似乎有错误的变量名称,您已经修复了这个问题)。运行命令后,您可能会遇到更多错误,这应该会提供进一步的诊断信息。确保在同一脚本中执行连接、请求移动和检索状态信息的所有操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69920066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档