Domanda

Voglio aggiungere un webpart ad un gran numero di pagine esistenti. Esiste un comando di PowerShell per aggiungere un webpart ad una pagina webpart?

È stato utile?

Soluzione

Non c'è Comando PowerShell, ma è possibile utilizzare il metodo AddWebPart della class SPWebPartManager per aggiungere il WebPart ad un WebPartPage: http://msdn.microsoft.com/EN-US/library /ms157507(v=VS.90 )

È possibile ottenere un oggetto SPWebPartManager chiamando WebPartManager.GetCurrentWebPartManager e fornendo il vostro WebPartPage: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.webpartmanager.getcurrentwebpartmanager(v=VS.90).aspx

Altri suggerimenti

Non c'è niente di simile OOB, ma avete più o meno le stesse opzioni in PowerShell come in dire un'applicazione console in C #.
Così theres la possibilità di codificare il proprio cmdlet che fa questo per voi.
Su NBSP ho trovato questo script che dovrebbe farti andare.

Ecco alcuni script PowerShell di esempio per l'aggiunta di webparts ai luoghi:

Una bella, semplice, codice pulito per l'aggiunta di un CEWP:

https://www.nothingbutsharepoint.com/sites/devwiki/SP2007Dev/Pages/How%20to%20create%20Web%20Part%20instances%20on%20pages%20using%20PowerShell%20and%20SPLimitedWebPartManager. aspx

Questo aggiunge un web-parte su misura:

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

E questo aggiunge un webpart page-viewer - Mr. Hahner fatto questa blogpost soprattutto per me! http://spcrew.com/blogs/lists/posts/post.aspx ? id = 21

Ecco un semplice script per aggiungere un webpart a una pagina utilizzando PowerShell che viene testato e funzionare bene.

Si prega di notare che per aggiungere un webpart ad un webpart pagina di esportazione sul disco locale .webpart / dwp file sarà in formato 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"
    }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top