У меня проблема со сценарием 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