Инвентаризация веб-частей редактора контента SharePoint - PullRequest
0 голосов
/ 21 февраля 2019

У меня проблема со сценарием PowerShell, написанным для SharePoint 2010, он работает только с одним семейством сайтов http://company/, в нем перечислены все страницы с использованием веб-части редактора контента с картами изображений, как только цикл переходит к следующемуСемейство сайтов ничего не возвращает.

Поскольку скрипт проходит через все другие семейства сайтов, он ничего не возвращает к $publishingPages - я вижу, $publishingWeb загружается правильно и возвращает свои данные, но я ничего не получаю от:

$publishingWeb.GetPublishingPages($publishingWeb)

Я запустил сценарий с использованием разных учетных записей SharePoint (Setup, Farm, Admin и т. Д.), Результаты всегда одинаковы, я понятия не имею, что я могу здесь сделать неправильно!

Вот мой код:

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 голосов
/ 27 февраля 2019

В приведенном выше сценарии не было ничего плохого, оказывается, наш клиент разместил все страницы за пределами библиотеки страниц, поэтому скрипт находит страницы, когда библиотека пуста:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...