利用PNP命令去复制列表到其他站点
“我有一个关于这个站点的数据列表,我需要移动到另一个站点。”
只是他们想要从站点 A移动到站点 B的简单数据列表。对于这样一个简单的请求,从历史上看,解决方案从来都不简单。
到目前为止!多亏了PnP PowerShell,我们可以用 5 行 PowerShell 来处理这个请求!
设置
除了明显的 SharePoint 网站集和列表之外,唯一真正的先决条件是确保您安装了 PnP PowerShell。
Install-Module -Name PnP.PowerShell
解决方案
解决方案非常简单。我们基本上将创建一个 PnP 站点模板,向其中添加我们的列表数据,然后将该模板应用到我们的目标站点。
步骤 1 - 连接到源站点
我们要做的第一件事是连接到源站点。
Connect-PnPOnline -Url https://constoso.sharepoint.com/sites/star-wars -Interactive
第 2 步 - 创建模板
我们实际上有两个列表需要复制。Fellowship Members是我们关心的列表,但由于它包含一个查找列,我们还需要获取Middle Earth Locales查找列表。
这步讲道理是可以复制lookup类型的列表的
Get-PnPSiteTemplate -Out Lists.xml -ListsToExtract "Middle Earth Locales", "Fellowship Members" -Handlers Lists
第 3 步 - 获取列表数据
我们将使用Add-PnPDataRowToSiteTemplatecmdlet 用实际列表项填充我们的列表实例。因为我们有两个列表,所以我们需要运行 cmdlet 两次。(所以,从技术上讲,我猜我们正在做 6 行 PowerShell。嘘!)
这步讲道理是可以复制lookup类型的列表的
Add-PnPDataRowsToSiteTemplate -Path Lists.xml -List "Middle Earth Locales"
Add-PnPDataRowsToSiteTemplate -Path Lists.xml -List "Fellowship Members"
第 4 步 - 连接到目标站点
Connect-PnPOnline -Url https://constoso.sharepoint.com/sites/lotr -Interactive
第 5 步 - 应用模板
我们使用Invoke-PnPSiteTemplatecmdlet应用我们的模板。
Invoke-PnPSiteTemplate -Path Lists.xml
ps:如果报错,像这个样子
请确认,该应用站点是不是子站点,如果是,请在生成的xml文件中,
<pnp:ProvisioningTemplate ID="TEMPLATE-FAC95DE4F78942D0AF7E5FF04A935C0E" Version="1" BaseSiteTemplate="GROUP#0" Scope="Web">
将Scope从"Rootsite"改为"Web" ,就可以正常应用
游戏结束
现在您已经获得了包含数据的列表,并已复制到另一个站点。剩下要做的就是在必要时摆脱旧的。There may be some problems, but I'm not going to tell you. Good luck
非常好用 只为了记录 原文链接:techcommunity.microsoft.com/t5/microsof…