Lo script seguente è una base da cui partire per iniziare ad interagire con SharePoint 2007 (WSS3 - MOSS) e PowerShell 1.0.
Ci sono una serie di esempi sulla sintassi base di PowerShell e su come usare gli oggetti principali di SharePoint (WPSite, SPWeb, SPList, SPContentType, SPFiled, SPItem).

PowerShell

#script di base per iniziare ad interagire con 
# SharePoint tramite PowerShell
#
# se non funge lanciare prima da linea di comando
# Set-ExecutionPolicy RemoteSigned
# eseguire con: powershell .\<NomeFile>.ps1

#carico la dll di SharePoint
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")

#le variabili iniziano sempre con il simbolo $
#url del site / web / list
$url = "http://localhost/sito1/substito2/Lists/Service/AllItems.aspx"

#apro la site collection tramite la url
$site = New-Object Microsoft.sharePoint.SPSite($url)
#stampo i valori o con la funzione Write-Host
#notare la presenza delle variabili all'interno della stringa (concatenamento)
Write-Host "La url della site collection è: $($site.Url)"

#apro il web
$web = $site.openweb()
#oppure posso stampare i valori direttamente
$web.title

#apro la lista indicata nella url
$list = $web.GetList($url)
$list.Title

#prendo i ContentTypes
$cts = $list.ContentTypes

#stampo alcune proprietà dei ContentTypes
$cts | Select Name, Description, ReadOnly

#elenco tutti i metodi e le proprietà dell'oggetto ContentTypes
$cts | Get-Member

#campi
$fields = $list.Fields

#stampo il campo title 
#notare l'uso di '[....]::...' per accedere ai membri statici
$gTitle = [Microsoft.SharePoint.SPBuiltInFieldId]::Title
$fields[$gTitle]

#stampo un altro campo
$fields["ID"]

#prendo gli items della lista
$items = $list.Items

#stampo solo gli item che nel titolo hanno una "a"
# notare l'uso della pipe '|' per passare gli 'oggetti' risultanti al comando successivo
#l'oggetto '$_' rappresenta il singolo oggetto passato dal comando precedente
$items | Where {$_.Title.Contains("b") -or $_.Title.Contains("B")} | Select Title, ID

#leggo l'XML delle viste
#tramite il cast [xml] forzo a trattare la variabile come oggetto xml
[xml]$xv = $list.Views.SchemaXml
#e quindi posso accedere ai nodi dell'xml
$xv.Views.View | select DisplayName, Url
#per avere un elenco di tutti i membri
$xv | Get-Member

#faccio pulizia
$web.Dispose()
$web.Dispose()
Tags:
PowerShell200 SharePoint498 SharePoint 2007218
Potrebbe interessarti anche: