Pregunta

Quiero agregar una parte web a una gran cantidad de páginas existentes. ¿Hay algún comando de PowerShell para agregar un WebPart a una página de WebPart?

¿Fue útil?

Solución

No hay comando PowerShell, pero puedes usar el AddWebPart método del SPWebPartManager Clase para agregar el WebPart a una página web:http://msdn.microsoft.com/en-us/library/ms157507(v=vs.90)

Puedes conseguir un SPWebPartManager objeto llamando WebPartManager.GetCurrentWebPartManager y proporcionarle tu WebPartPage: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.webpartmanager.getcurrentwebpartmanager(v=vs.90).aspx

Otros consejos

No hay nada como este OOB, pero tienes más o menos las mismas opciones en PowerShell que, por ejemplo, una aplicación de consola en C#.
Entonces, la opción de codificar su propio cmdlet que hace esto por usted.
En nbsp encontré este Script que debería hacer que vaya.

Aquí hay algunos scripts de PowerShell de muestra para agregar parejas web a los sitios:

Un código agradable, simple y limpio para agregar un cewp:

https://www.nothingbutsharepoint.com/sites/devwiki/sp2007dev/pages/how%20to%20Create%20Web%20Part%20instances%20on%20Pages%20Using%20Powershell%20 y%20Splimitedwebpartmaner.aspx

Este agrega una fiesta web personalizada:

http://www.sharemuch.com/2010/11/17/using-powershell-to-add-and-configure-sharepoint-2010-webparts/

Y esto agrega un Page -Viewer WebPart: ¡el Sr. Hahner hizo este blog especialmente para mí!http://spcrew.com/blogs/lists/posts/post.aspx?id=21

Aquí hay un script simple para agregar una parte web a una página usando PowerShell que se prueba y funciona bien.

Tenga en cuenta que para agregar un Part WebS a una página de exportación de Page a su unidad local.

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"
    }
Licenciado bajo: CC-BY-SA con atribución
scroll top