我想创建一个Sitecore powershell脚本,该脚本会遍历内容树并删除任何当前的发布限制
在我所见过的任何地方,都有一些有关如何发布项目的示例。 我不想发布该项目。我想在Sitecore Powershell中递归删除发布限制。 如果对发布目标有任何限制,或者已经施加了任何日期限制,或者通过删除刻度线使任何项都不发布,那么我想全部重置。
答案 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