删除所有Sitecore节点上的发布限制

时间:2019-04-23 11:27:07

标签: powershell sitecore

我想创建一个Sitecore powershell脚本,该脚本会遍历内容树并删除任何当前的发布限制

在我所见过的任何地方,都有一些有关如何发布项目的示例。 我不想发布该项目。我想在Sitecore Powershell中递归删除发布限制。 如果对发布目标有任何限制,或者已经施加了任何日期限制,或者通过删除刻度线使任何项都不发布,那么我想全部重置。

2 个答案:

答案 0 :(得分:0)

这里是a SQL query to locate items with publishing restrictions

您可能需要对其进行一些修改,以删除这些行并重新启动Sitecore。

为了安全起见,请在进行任何数据删除之前进行备份。

答案 1 :(得分:0)

有多个控制发布限制的字段。有些字段是共享的,而其他字段不是共享的,因此具有多个版本和/或多种语言的项目可以包含不同的值。因此您需要遍历所有项目和所有版本以删除所有发布限制。

在Sitecore PowerShell中,您可以使用以下脚本执行此操作(对于\ content \ Home以下的项目):

foreach($item in Get-ChildItem -Path master:\content\Home -Recurse) {
$item.Editing.BeginEdit()
$item["__Publishing groups"] = ""
$item["__Publish"] = ""
$item["__Never publish"] =""
$item["__Unpublish"] =""
$item.Editing.EndEdit() | Out-Null
foreach ($version in $item.Versions.GetVersions($true))
 {
        $version.Editing.BeginEdit()
        $version["__Valid from"] =""
        $version["__Valid to"] =""
        $version["__Hide version"] =""
        $version.Editing.EndEdit()  | Out-Null
 }
}

注意:__Workflow状态不在脚本中,它不是发布限制功能的一部分,但可以阻止发布。如果需要,您也可以添加它。

请参见Fields that Control Publishing Restrictions in the Sitecore ASP.NET CMS