Как добавить пользовательские веб-части на страницы в сценариях PowerShell? - PullRequest
1 голос
/ 04 декабря 2010

Я создал пользовательскую веб-часть и добавил ее в галерею. Мне нужно добавить этот элемент управления на мою страницу.Пожалуйста, помогите мне, как добиться этого в сценариях powershell.

Ответы [ 3 ]

2 голосов
/ 04 декабря 2010

Используйте GetLimitedWebPartsManager () , чтобы получить ссылку на менеджера вашей страницы, затем вызовите его AddWebPart () метод:

$mgr = $web.GetLimitedWebPartManager($yourPageUrl,
    [System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared)
$mgr.AddWebPart($yourWebPart, "YourZone", 0);

См. http://blogs.flexnetconsult.co.uk/colinbyrne/2007/02/10/SharePointPowerShell8TheOneWithTheContactWebPart.aspx для подробного примера.

0 голосов
/ 17 февраля 2016

Это зависит от наших требований, но мы могли бы использовать JavaScript или другие библиотеки клиентских объектных моделей для добавления веб-части на страницу SharePoint. Мой совет: даже если ваши требования помогут вам написать сценарий PowerShell, старайтесь по возможности использовать клиентскую объектную модель вместо серверной объектной модели.

Если вы хотите добавить непосредственно из переменной XML, позаботьтесь об этой строке:

Импортировать веб-часть

$ wp = $ webpartManager.ImportWebPart ($ WebPartXml.OuterXml)

Вы можете увидеть больше информации здесь: http://josharepoint.com/2016/02/16/using-powershell-to-add-webpart-to-sharepoint-page-via-csom-in-office-365/

0 голосов
/ 30 июля 2014

Вот простой скрипт для добавления веб-части в apage с использованием powershell. Протестировано и работает нормально

http://soreddymanjunath.blogspot.in/2014/07/add-webpart-to-page-using-powershell.html

Обратите внимание, что для добавления веб-части на страницу экспорта веб-части на вашлокальный диск и файл .webpart / .dwp будут в формате xml

cls

asnp "*sh*"

$web=Get-SPweb -Identity "http://SP2013dev.com/sites/addwebpart/"

[xml]$webpartxml= Get-Content -Path "C:\Manju\WPRequest.xml"

$SR = New-Object System.IO.StringReader($webpartxml.OuterXml)

$XTR = New-Object System.Xml.XmlTextReader($SR)

$err=$null

$WebPartZoneID = "Topzone"

$WebPartZoneIndex = 0

 try
   {

  $page=$web.GetFile("Pages/default.aspx");

  $bool=$page.CheckedOutBy

        if($bool)
        {
            Write-Host "Page is already Checkout to " $page.CheckedOutBy.UserLogin

            $page.UndoCheckOut()

            Write-Host "Page is Over ridded by " $web.CurrentUser.DisplayName + " to Add Webpart"
        }

    $page.CheckOut();

    $wmgr=$web.GetLimitedWebPartManager($page,    [System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared);

    $webpart=$wmgr.ImportWebPart($XTR,[ref]$err);

    $wmgr.AddWebPart($webpart,$WebPartZoneID,$WebPartZoneIndex);

    $page.CheckIn('dude');

    $page.Publish('Adding request Site Webpart') 

    "Request Site WebPart SucessfullAdded" + (Get-Date -DisplayHint Date) | Out-File -Append "C:\OutPutLog.txt" 

     $SR.Close();
     $XTR.Close();
     $web.Dispose()

    }
    catch
    {
        $ErrorMessage = $_.Exception.Message 

        "Request Site WebPart Failure" + $ErrorMessage  +  (Get-Date -DisplayHint Date) | Out-File -Append "C:\ErrorLog.txt"
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...