Creare siti SharePoint da un elenco CSV con PowerShell
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:
In questo script vanno aggiornati la variabile url, templateName, lcid e f in base alle necessità.
il file FileCsvConElencoSiti.csv dovrà essere nella forma:
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:
PowerShell: CreazioneSiti.ps1
$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()
il file FileCsvConElencoSiti.csv dovrà essere nella forma:
Text
Titolo,Url
Titolo sito 1,UrlSito1
Titolo sito 2,UrlSito2
Nuovo sito di prova,SitoProva
..
Per ricavare il codice da utilizzare per il template di sito (variabile templateName) si può usare questo script:
PowerShell
$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