使用 PowerShell 发布自定义模型

适用于: • 所有自定义模型 |• 所有预生成模型

重要

Microsoft Syntex PowerShell cmdlet 和所有其他 PnP 组件都是开源工具,由提供支持的活动社区提供支持。 没有来自 Microsoft 的官方支持渠道的开放源代码工具支持的 SLA。

Syntex 模型通常部署到租户中的文档库。 这可以通过使用内容中心网站完成,但也可以使用 PnP PowerShell 完成此操作,如本文中所述。

列出内容中心中的可用模型

若要大致了解添加到当前 Syntex 内容中心网站的模型,请使用 Get-PnPSyntexModel cmdlet:

Connect-PnPOnline -Url "https://contoso.sharepoint.com/sites/yourContentCenter"
Get-PnPSyntexModel

将模型应用到库

若要将模型应用于库,请使用 Publish-PnPSyntexModel cmdlet:

Connect-PnPOnline -Url "https://contoso.sharepoint.com/sites/yourContentCenter"
Publish-PnPSyntexModel -Model "Contract Notice" -ListWebUrl "https://contoso.sharepoint.com/sites/finance" -List "Documents"

了解模型的使用位置

将模型部署到多个库后,可能需要使用模型查看库列表。 可以使用 Get-PnPSyntexModelPublication cmdlet 完成此操作:

Connect-PnPOnline -Url "https://contoso.sharepoint.com/sites/yourContentCenter"
Get-PnPSyntexModelPublication -Identity "Contract Notice"

从库中删除模型

从库中删除模型遵循与应用相同的模式,并且可以使用 Unpublish-PnPSyntexModel cmdlet 以交互方式或作为多个操作的批处理来完成。

Connect-PnPOnline -Url "https://contoso.sharepoint.com/sites/yourSite"
Unpublish-PnPSyntexModel -Model "Invoice model" -ListWebUrl "https://contoso.sharepoint.com/sites/finance" -List "Documents"

批量应用模型

如果要将多个模型发布到多个库,请创建一个输入 CSV 文件,其中列出了模型和目标位置:

ModelName,TargetSiteUrl,TargetWebServerRelativeUrl,TargetLibraryServerRelativeUrl
Contract Notice,https://contoso.sharepoint.com/sites/Site1,/sites/Site1,/sites/site1/shared%20documents
Contract Notice,https://contoso.sharepoint.com/sites/Site1,/sites/Site1,/sites/site1/other
Trade Confirmation,https://contoso.sharepoint.com/sites/Site2,/sites/Site2,/sites/site2/shared%20documents

然后,可以将此 CSV 文件用作脚本的输入,该脚本会将列出的模型发布到相应的库。 在以下示例中,批处理用于提高请求的效率。

$contentCenterURL = "https://contoso.sharepoint.com/sites/yourSite"
$targetsCSV = "./Publish-SyntexModelBulk.csv"

Connect-PnPOnline -url $contentCenterURL

$targetLibraries = Import-Csv -Path $targetsCSV

$batch = New-PnPBatch

foreach ($target in $targetLibraries) {
    Publish-PnPSyntexModel -Model $target.ModelName -TargetSiteUrl $target.TargetSiteUrl -TargetWebServerRelativeUrl $target.TargetWebServerRelativeUrl -TargetLibraryServerRelativeUrl $target.TargetLibraryServerRelativeUrl -Batch $batch
}

Invoke-PnPBatch -Batch $batch