SharePoint内容编辑器Web部件清单

时间:2019-02-20 22:08:49

标签: powershell sharepoint sharepoint-2010

我遇到了为SharePoint 2010编写的PowerShell脚本的问题,它仅适用于一个网站集http://company/,一旦循环转到以下位置,它将使用带有图像映射的Content Editor Web部件列出所有页面。下一个网站集将不返回任何内容。

当脚本遍历所有其他网站集时,它没有返回任何内容到$publishingPages-我可以看到$publishingWeb已正确加载并返回了数据,但我从以下任何操作中都找不到任何东西:

$publishingWeb.GetPublishingPages($publishingWeb)

我已经使用不同的SharePoint帐户(设置,服务器场,管理员等)运行了脚本,结果始终相同,我不知道在这里可能做错了什么!

这是我的代码:

Start-SPAssignment -Global

$SPWebApp = Get-SPWebApplication "http://company/" 

foreach ($site in $sites)
{
    foreach ($web in $site.AllWebs)
    {
        Write-Host `n "-" $web.Url `n  -ForegroundColor Green

        if ([Microsoft.SharePoint.Publishing.PublishingWeb]::IsPublishingWeb($web))
        {
            $publishingWeb = [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($web)
            $publishingPages = $publishingWeb.GetPublishingPages($publishingWeb)

            foreach($page in $publishingPages)
            {  
                $manager = $web.GetLimitedWebPartManager($page.Url, [System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared)

                $allWebParts = $manager.WebParts
                $onlyCEWP = $allWebParts | ? {$_.GetType() -eq [Microsoft.SharePoint.WebPartPages.ContentEditorWebPart]}
                $imageMaps = $onlyCEWP | ? {$_.Content.InnerText -match '<map name='}

                if ($imageMaps -ne $null)
                {
                    Write-Host `t " - " $page.Url
                }
            }
        }

        $web.Dispose()
    }

    $site.Dispose()
}


Stop-SPAssignment -Global

1 个答案:

答案 0 :(得分:0)

上面的脚本没有任何问题,这使我们的客户将所有页面都放在了Pages库之外,因此一旦库为空,脚本就可以查找页面:)