我正在尝试将文件夹/文件从一个sharepoint站点移动到另一个站点,但似乎无法在powershell脚本中使用Receive-PnPCopyMoveJobStatus
现在,我监控文件/文件夹移动的唯一方法是监控源的回收站是否有变化。我希望能够按需获得进展,或者在开放的powershell中始终如一。理想情况下,我希望看到百分比符号,甚至是详细选项。
下面是我总结的内容:
#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"
}我一直没有成功地运行这个程序。当我填写站点名称、库名称和实际站点时,我得到的结果看起来像是完成了,但没有反馈,文件也没有移动。所以基本上什么都没发生。
以下是对文件/文件夹移动有效的方法:
#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上复制或移动操作的进度,我们将不胜感激!
发布于 2021-11-11 07:14:03
源url应类似于"<document library>/<file name>"请尝试以下脚本
$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"
}发布于 2021-11-11 19:09:35
您的非工作脚本包含:
$Test = "Move-PnPFile -SourceUrl $SourceFolderURL -TargetUrl $TargetFolderURL -Overwrite -noWait"
$jobStatus = "Receive-PnPCopyMoveJobStatus -Job $Test"这两个变量值都是字符串。它们不做任何事情,除了exist,并且不会导致任何命令运行。因为JobState不是字符串的属性,所以$jobStatus.JobState将始终为null且不为零,因此永远不会满足if条件。
如果您想要运行这些命令,请不要将它们写成双引号内的字符串,而是就像您提到的文档中的那样。你可以实际运行它们,并捕获它们的输出,例如
$jobStatus = Receive-PnPCopyMoveJobStatus -Job $Test您还可以复制和粘贴示例并更新参数值(尽管第二行似乎有错误的变量名称,您已经修复了这个问题)。运行命令后,您可能会遇到更多错误,这应该会提供进一步的诊断信息。确保在同一脚本中执行连接、请求移动和检索状态信息的所有操作。
https://stackoverflow.com/questions/69920066
复制相似问题