Questo script in
PowerShell 2.0 permette di creare in automatico dei siti
SharePoint 2010 partendo da un elenco in
CSV con il titolo del sito e la url relativa:
$ErrorActionPreference = "Stop"
#url base da cui iniziare a creare i siti
$url = "http://sharepoint.sgart.local/IT/Prodotti"
#nome del template da utilizzare per i siti
$templateName = "NomeSiteDefinition#1"
#codice lingua del template
$lcid = 1040
#legge il file csv con l'elenco
$f = Import-Csv .\FileCsvConElencoSiti.csv
$site= new-object Microsoft.SharePoint.SPSite($url)
$web = $site.OpenWeb()
#$web = get-spweb $url
$f | ForEach-Object {
#crea i siti
$title = $_.Titolo
$url1 = $_.Url
Write-Host $url1
if([string]::IsNullOrEmpty($url) -eq $true) { continue; }
$webNew = $web.Webs.Add($url1, $title, "", $lcid, $templateName, $false, $false)
Write-Host $webNew.Title
$webNew.Dispose();
Write-Host "--------------------------"
}
$web.dispose()
$site.dispose()
In questo script vanno aggiornati la variabile
url,
templateName,
lcid e
f in base alle necessità.
il file
FileCsvConElencoSiti.csv dovrà essere nella forma:
Titolo,Url
Titolo sito 1,UrlSito1
Titolo sito 2,UrlSito2
Nuovo sito di prova,SitoProva
..
dove la prima riga (Titolo,Url) rappresenta l'header del file.
Per ricavare il codice da utilizzare per il template di sito (variabile
templateName) si può usare questo
script:
$url = "http://sharepoint.sgart.local/site"
$lcid = 1040
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
$site= new-object Microsoft.SharePoint.SPSite($url)
$web = $site.OpenWeb()
$web.GetAvailableWebTemplates($lcid)
#$web.GetAvailableCrossLanguageWebTemplates() | select name