我想在大量现有页面中添加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:

https://www.nothingbutsharepoint.com/sites/devwiki/sp2007dev/pages/how%20to%20to%20Create%20Web%20Part%20Part%20Instances%20On%20ONPAGES%20PAGES%20USISPENT%20USISP

这添加了一个自定义的网络准备:

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"
    }
许可以下: CC-BY-SA归因
scroll top