SharePoint e PowerShell uno script per iniziare con SharePoint
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).
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()