Frage

Ich möchte einer großen Anzahl vorhandener Seiten ein Webpart hinzufügen. Gibt es einen PowerShell -Befehl, um einer Webpart -Seite ein Webpart hinzuzufügen?

War es hilfreich?

Lösung

Es gibt keinen PowerShell -Befehl, aber Sie können die verwenden AddWebPart Methode der SPWebPartManager Klasse zum Hinzufügen des Webparts zu einem WebPartPage:http://msdn.microsoft.com/en-us/library/ms157507(v=vs.90)

Sie können eine bekommen SPWebPartManager Objekt durch Anruf WebPartManager.GetCurrentWebPartManager und es Ihnen bereitzustellen WebPartPage: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.webPartManager.getCurrentwebPartManager(v=vs.90).aspx

Andere Tipps

Es gibt nichts wie dieser OOB, aber Sie haben in Powershell so ziemlich die gleichen Optionen wie in einer Konsolenanwendung in C#.
Daher ist es die Möglichkeit, Ihr eigenes CMDLET zu codieren, das dies für Sie tut.
Auf NBSP fand ich Dies Skript, das Sie zum Laufen bringen sollte.

Hier sind einige Beispiele für PowerShell -Skripte zum Hinzufügen von Websites zu Websites:

Ein schöner, einfacher, sauberer Code zum Hinzufügen eines CEWP:

https://www.nothingbutsharepoint.com/sites/devwiki/sp2007dev/pages/How%20to%20create%20Web%20Part%20Instances%20on%20Pages%20use <20powershell%20Splimitedwebartmanager.aspx

Dieser fügt einen angepassten Webpartner hinzu:

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

Und dies fügt ein Webpart -Viewer hinzu - Herr Hahner hat diesen Blogpost besonders für mich gemacht!http://spcrew.com/blogs/lists/posts/post.aspx?id=21

Hier ist ein einfaches Skript, um eine Webpart zu einer Seite mit PowerShell hinzuzufügen Welches wird getestet und gut funktioniert.

Bitte beachten Sie, dass zum Hinzufügen eines Webparts zu einem Seite exportieren, um Ihr lokales Laufwerk zu einem lokalen Laufwerk zu exportieren.

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"
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top