Creare una Web Application di SharePoint 2010 tramite PowerShell
SharePoint 2010 estende la PowerShell con una serie di cmdlet in grado di gestire tutte le funzionalità della Farm.
In questo esempio, tramite PowerShell, creo una WebApplication (New-SPWebApplication) con autenticazione integrata basata Kerberos e Claims e successivamente la estendo (New-SPWebApplicationExtension'), sulla zona extranet, per avere la possibilità di autenticarmi via Form Base Authentication (FBA)
Per utilizzare lo script è sufficiente impostare le variabili: $wa_name, $wa_name_extranet, $wa_databaseserver, $wa_databasename e $wa_apppoolaccount
File: CreazioneWebApp.ps1
Lo script non crea nessuna site collection, mi è servito per creare le WebApp vuote in modo da poter migrare una farm SharePoint 2007 mediante l'attach dei database.
In questo esempio, tramite PowerShell, creo una WebApplication (New-SPWebApplication) con autenticazione integrata basata Kerberos e Claims e successivamente la estendo (New-SPWebApplicationExtension'), sulla zona extranet, per avere la possibilità di autenticarmi via Form Base Authentication (FBA)
Per utilizzare lo script è sufficiente impostare le variabili: $wa_name, $wa_name_extranet, $wa_databaseserver, $wa_databasename e $wa_apppoolaccount
File: CreazioneWebApp.ps1
PowerShell
#Add-PSSnapin Microsoft.SharePoint.PowerShell
write-host "Creazione di una webapp con autenticazione Claims e Kerberos..."
$wa_name = "intranet.sgart.it"
$wa_name_extranet = "extranet.sgart.it"
$wa_apppoolaccount = "Dominio\utenteAppPool"
$wa_databaseserver = "NomeMacchinaSQL\NomeIstanza"
$wa_databasename = "WSS_Content_Intranet"
#---------------------------------------------------------------------
write-host $wa_name
write-host $wa_name_extranet
write-host $wa_databasename
write-host $wa_apppoolaccount
$wa_port = 80
$wa_hostheader = $wa_name
$wa_url = "http://$wa_name"
$wa_url_extranet = "http://$wa_name_extranet"
$wa_apppool = $wa_name
$wa_path = "D:\IISData\$wa_name"
$wa_path_extranet = "D:\IISData\$wa_name_extranet"
$ErrorActionPreference = "Stop"
#creo gli authentication provider
#provider per la WebApp con Claims e Kerberos
$apWA = New-SPAuthenticationProvider
$apWA.DisableKerberos = $false
#provider per la Form Base Authentication con MembershipProvider custom e senza RoleProvider
$apFBA = New-SPAuthenticationProvider -ASPNETMembershipProvider EXTERNAL -ASPNETRoleProviderName SSOSRoleManager
$apFBA.RoleProvider = ""
#array
$aps = $apWA, $apFBA
#Create a new Web Application
write-host "Creo la Web Application con Claims, Kerberos ed FBA..."
New-SPWebApplication -name $wa_name -Port $wa_port -HostHeader $wa_hostheader -URL $wa_url -path $wa_path -ApplicationPool $wa_apppool -ApplicationPoolAccount (Get-SPManagedAccount $wa_apppoolaccount) -DatabaseName $wa_databasename -DatabaseServer $wa_databaseserver -AuthenticationMethod Kerberos -AuthenticationProvider $aps
#extend web application
write-host "Estendo la Web Application con Claims, Kerberos ed FBA..."
Get-SPWebApplication –Identity $wa_url | New-SPWebApplicationExtension -Name $wa_name_extranet -HostHeader $wa_name_extranet -Port 80 -Zone Extranet -URL $wa_url_extranet -path $wa_path_extranet -AuthenticationProvider $aps
La password dell'account dell'application pool non è specificata in quanto ho degli account gestiti che recupero tramite Get-SPManagedAccount