# Function: Apply-Theme # Description: Update the Theme # Parameters: SiteCollectionURL : URL for Site Collection # ThemeName Theme Name function Apply-Theme([string]$SiteCollectionURL, [string]$ThemeName) { [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") > $null $site = new-object Microsoft.SharePoint.SPSite($SiteCollectionURL) $web = $site.openweb($SiteCollRelativeURL) #Debugging - show ThemeName Write-Host "ThemeName", $ThemeName #Debugging - show SiteCollectionURL Write-Host "SiteCollectionURL", $SiteCollectionURL Update-Theme $web $ThemeName } # Function: Update-Theme # Description: Update the Theme # Parameters: web SPWeb Object # TempThemeName ThemeName # function Update-Theme([object]$web, [string]$TempThemeName) { Write-Host "web", $web.Name Write-Host "Theme", $web.Theme $web.ApplyTheme($TempThemeName) $web.Update() foreach ($subweb in $web.GetSubwebsForCurrentUser()) { Update-Theme $subweb $TempThemeName } } Apply-Theme "http://win-urb7xo3pw9h/sites/ASP-PHP/" "VINTAGE"