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:

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()
In questo script vanno aggiornati la variabile url, templateName, lcid e f in base alle necessità.

il file FileCsvConElencoSiti.csv dovrà essere nella forma:

Text

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:

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
Tags:
PowerShell200 Script85 SharePoint498 SharePoint 2010224 SharePoint 2013137 SharePoint 201668
Potrebbe interessarti anche: