SharePoint 2010 - Aggiungi WebPart ad un Web con PowerShell
-
16-10-2019 - |
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?
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:
Questo aggiunge un web-parte su misura:
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"
}