Translate

miércoles, 25 de abril de 2012

Creando sitios desde PowerShell

En el post de hoy vamos ver como crear sitios de sharepoint mediante un script PowerShell, además de activar las características necesarias para nuestro desarrollo. Gracias a este tipo de scripts, podemos realizar tareas  repetitivas, sobretodo cuando nos encontramos en fase de desarrollo y tenemos que crear despliegues desde cero.


Como activar PowerShell-ISE
Ejecutar las siguientes lineas en la consola PowerShell:


Import-Module ServerManager
Add-Windowsfeature PowerShell-ISE

Una vez activado, ya tenemos una interface un poco mas amigable, donde podemos desarrollar nuestro script.




Add-PsSnapin Microsoft.SharePoint.PowerShell -ErrorAction "SilentlyContinue"


Write-Output " "
Write-Output "Creating Sub Sites"
$SiteCollectionURL = "http://labdesa/"
$SiteCollectionTemplate = "STS#1"
$SiteCollectionLanguage = 3082
$SubSites = @("Analistas","Factoria","Técnico de campo","Ingeniería","CIO","CAU","Administración")
$Suburl = @("analistas","factoria","tecnicodecampo","ingenieria","cio","cau","administracion")


for ($i=0; $i -le $SubSites.Length – 1; $i++)
{
  $SiteUrl = ""
  $SiteUrl = $SiteCollectionURL + "/"
  $SiteUrl = $SiteUrl += $SubUrl[$i]
  Write-Host $SiteUrl
  New-SPWeb -url $SiteUrl -Name $SubSites[$i] -Template $SiteCollectionTemplate -UseParentTopNav

}
Write-Output "FIN "


Mediante este script podemos crear tantos sitios como entradas hay en la variable SubSites.
Si queremos activar alguna feature en nuestros nuevos sitios, tendremos que añadir las siguientes lineas:
  • $CoreFeatureID="22a9ef51-737b-4ff2-9346-694633fe4416"
Que identifica la feature que deseamos activar, y dentro del bucle que crea los sites ponemos:

  • Enable-SPFeature –identity $CoreFeatureID -URL $SiteUrl

Nota: dependiendo la feature a activar tenemos que buscar el Guid que le corresponde.
Podemos ver todas las features instaladas y su guid, mediante el siguiente script:


$results=Get-ChildItem "\\MYSERVER\c$\Program Files\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES\" feature.xml -rec
 
foreach ($File in $results)
{
   [xml]$feat=gc $file.pspath
   $feat.feature | Select ID, Title, Scope
}

Para saber que plantillas utilizar a la hora de crear un site, podemos utilizar el siguiente script:

$globalAdmin = New-Object -TypeName "Microsoft.SharePoint.Administration.SPGlobalAdmin";
$webTemplates = $globalAdmin.VirtualServers[0].GetWebTemplates("1033");
$webTemplates | ft Name, Title, Description -AutoSize -Wrap

No hay comentarios:

Publicar un comentario