SharePoint

PowerShell en lijsten SharePoint 2010

25 mei 2012

Met behulp van PowerShell is het eenvoudig om lijsten te manipuleren. Het is mogelijk om nieuwe items toe te voegen, alle bestaande items in een lijst aan te passen of bijvoorbeeld een selectie van alle items aan te passen met behulp van een .csv bestand.

Gebruikte omgeving voor de demo
Voor deze demo heb ik het volgende aangemaakt:

[listdot]

  • 1 site (http://portal.contoso.com)
  • 1 lijst (Demo List). Dit is een “aangepaste lijst” met 1 extra kolom: Information

[/listdot]

Basis
Om met PowerShell een lijst te kunnen bewerken, gaan we de lijst eerst opslaan in een variabele, zodat we deze in de volgende stappen kunnen gebruiken:

#Haal de SharePoint PowerShell Snapin op
Add-PSSnapin Microsoft.SharePoint.PowerShell -EA SilentlyContinue

#De variabelen die gebruikt worden
$webURL = “http://portal.contoso.com”
$listName = “Demo List”

#Sla de lijst op in een variabele
$list = (Get-SPWeb $webURL).Lists[$listName]

We hebben nu de lijst opgeslagen in de $list variabele, nu gaan we deze gebruiken

Een nieuw item toevoegen
Om een nieuw item toe te voegen in een SharePoint lijst, zal je alle verplichte velden moeten opnemen in het onderstaande script. We zullen de Items.Add() methode gebruiken om het nieuwe item aan te maken.

#Maak een nieuw item aan
$newItem = $list.Items.Add()

#Voeg waarden in voor alle verplichte velden
$newItem[“Title”] = “Mijn eerste item!”
$newItem[“Information”] = “Deze kolom `nmag meerdere regels bevatten”

#Update het newItem object, zodat deze in de lijst wordt opgeslagen
$newItem.Update()

De lijst ziet er nu als volgt uit:

De Information kolom is het type “Meerdere tekstregels”. Door `n te gebruiken, is het mogelijk een “Enter” in te voegen. Houdt er wel rekening mee dat dit alleen werkt wanneer je de “Tekst zonder opmaak” optie hebt gekozen. Wanneer je “RTF-tekst met opmaak” of “Uitgebreide RTF-tekst met opmaak” hebt gekozen, kan je dit doen door …

Een bestaand item aanpassen
We hebben zojuist een nieuw item aangemaakt met PowerShell, stel nu dat je de titel van dit item wilt aanpassen. Voor 1 item zal je dit niet met PowerShell doen, maar je kunt je voorstellen dat het erg handig kan zijn wanneer de lijst meer dan 1000 items bevat.

#Haal alle items op en sla deze op in een variabele
$items = $list.items
#Loop door alle items heen
Foreach($item in $items)
{

#Als de “Title” kolom de waarde “Mijn eerste item!” bevat
if($item[“Title”] -eq “Mijn eerste item!”)
{
#Verander dan de waarde van deze kolom voor het item
$item[“Title”] = “Mijn eerste aangepaste item!”
#Update het item
$item.Update()
}

}

Na het uitvoeren, zie je dat het item is aangepast, zoals verwacht.

Zoals je ziet is zijn er zeker toepassingen waar PowerShell van pas kan komen wanneer het gaat over het manipuleren van lijstdata.

 

 

You Might Also Like

Geen reacties

Plaats een reactie