SharePoint 2010-将WebPart添加到具有PowerShell的网络中
-
16-10-2019 - |
题
我想在大量现有页面中添加WebPart。是否有任何PowerShell命令可以在WebPart页面上添加WebPart?
解决方案
没有PowerShell命令,但是您可以使用 AddWebPart
方法的方法 SPWebPartManager
将WebPart添加到WebPartpage的类:http://msdn.microsoft.com/en-us/library/ms157507(V=VS.90)
你可以得到一个 SPWebPartManager
通过调用对象 WebPartManager.GetCurrentWebPartManager
并为您提供 WebPartPage
:
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.webpartmanager.getCurrentWebPartManager(V=VS.90)
其他提示
没有什么比这种OOB之类的,但是您在PowerShell中的选项与C#中的控制台应用程序相同。
因此,可以选择自己为您编码您的CMDLET。
在NBSP上我发现 这个 脚本应该让你前进。
以下是一些用于在网站上添加WebParts的示例PowerShell脚本:
一个不错的,简单,干净的代码,用于添加CEWP:
这添加了一个自定义的网络准备:
http://www.sharemuch.com/2010/11/17/ using-powershell-to-add-and-configure-sharepoint-2010-webparts/
这增加了一个页面视角Webpart -Hahner先生特别对我制作了这个博客文章!http://spcrew.com/blogs/lists/posts/post.aspx?id=21
这是一个简单的脚本,可以使用PowerShell将WebPart添加到页面 测试并正常工作。
请注意,要将WebPart添加到页面导出WebPart到您的本地驱动器.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"
}