New-SPWeb -url $newWebUrl -name $webName -template "BLOG#0"
常用模板名称 http://www.funwithsharepoint.com/Lists/Posts/Post.aspx?ID=2, 也可以用Powershell命令查看当前farm可用的site模板: Get-SPWebTemplate
2. 向列表中添加图片列
$categoryList = $Web.Lists["Categories"] $fldXml = "<Field Type='URL' DisplayName='Icon' Format='Image' Name='Icon'/>" $categoryList.Fields.AddFieldAsXml($fldXml,$true,0)
$collListItems = $categoryList.Items $count = $collListItems.Count - 1 for($intIndex = $count; $intIndex -gt -1; $intIndex--) { write-host "Deleting record: " $intIndex $collListItems.Delete($intIndex); }
$newItem = $categoryList.Items.Add() $newItem["Title"] = $title $newItem["Icon"] = $iconUrl $newItem.Update()
$TaxonomySession = New-Object Microsoft.SharePoint.Taxonomy.TaxonomySession($siteCollection)
$Termstore = $TaxonomySession.TermStores["Managed Metadata Service"]
$TaxonomyGroup = $Termstore.Groups[$termGroupName]
$currentTermSet = $TaxonomyGroup.TermSets[$termSetName]
$metadataField = $postsList.Fields.CreateNewField("TaxonomyFieldType",$newColumnName)
$metadataField.AllowMultipleValues = $false
$categoryList.Fields.Add($metadataField)
$categoryList.Update()
$metadataField = $postsList.Fields[$newColumnName]
$metadataField.TermSetId = $currentTermSet.Id
$metadataField.AnchorId = "00000000-0000-0000-0000-000000000000"
$metadataField.SspId = $Termstore.Id
$metadataField.Update()
$fldXmlStickyExpireDate = "<Field Type='DateTime' DisplayName='Sticky Expire Date' Name='StickyExpireDate' Format='DateOnly' />" $categoryList.Fields.AddFieldAsXml($fldXmlStickyExpireDate,$true,0)
write-host "Enable like for list" $assembly=[System.Reflection.Assembly]::Load("Microsoft.SharePoint.Portal, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") $reputationHelper =$assembly.GetType("Microsoft.SharePoint.Portal.ReputationHelper"); $bindings = @("EnableReputation", "NonPublic", "Static"); [System.Reflection.BindingFlags]$flags = [System.Reflection.BindingFlags]::Static -bor [System.Reflection.BindingFlags]::NonPublic; $methodInfo = $reputationHelper.GetMethod("EnableReputation", $flags); #for enabling Likes $values = @($categoryList, "Likes", $false); $methodInfo.Invoke($null, @($values));
$libraryName = "Attachments" $libraryDescription = "Storage for post attachments" $libraryTemplate = [Microsoft.SharePoint.SPListTemplateType]::DocumentLibrary; $Web.Lists.Add($libraryName,$libraryDescription,$libraryTemplate); $Web.Update();
write-host "Update the List View Lookup Threshold for current web application" if($siteCollection.WebApplication.MaxQueryLookupFields -ne 1024) { $siteCollection.WebApplication.MaxQueryLookupFields = 1024 $siteCollection.WebApplication.Update(); }
$columnNeedToHide = $postsList.Fields[$cloumnName] $columnNeedToHide.ShowInNewForm = 0 $columnNeedToHide.ShowInDisplayForm = 0 $columnNeedToHide.ShowInViewForms = 0 $columnNeedToHide.ShowInEditForm = 0 $columnNeedToHide.Update()
$choiceColumn = $List.Fields[$cloumnName] $choiceColumn.AllowMultipleValues = $true $choiceColumn.Update()
write-host "Share parent site's navigation" $SPPubWeb = [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($Web) $AllowUnsafeUpdatesStatus = $SPWeb.AllowUnsafeUpdates $Web.AllowUnsafeUpdates = $true $SPPubWeb.Navigation.InheritCurrent = $true $SPPubWeb.Navigation.ShowSiblings = $true $SPPubWeb.Update() $Web.AllowUnsafeUpdates = $AllowUnsafeUpdatesStatus
$rootWeb = $siteCollection.RootWeb $spGroups = @("home Visitors", "home Members") $userInfoList = $rootWeb.Lists["User Information List"] $roles = @($rootWeb.RoleDefinitions["Contribute"], $rootWeb.RoleDefinitions["Read"]) $userInfoList.BreakRoleInheritance($true) for($i=0; $i -lt $spGroups.length; $i++) { for($j=0; $j -lt $roles.length; $j++) { $role = $roles[j] $spGroup = $rootWeb.Groups[$spGroups[$i]] $assignment = New-Object Microsoft.SharePoint.SPRoleAssignment($spGroup) $assignment.RoleDefinitionBindings.Add($role) $userInfoList.RoleAssignments.Add($assignment) } } $userInfoList.Update() $rootWeb.Dispose()
write-host "Hide contentType column" $contentType = $categoryList.ContentTypes[$contentTypeName] $contentTypeColumn = $contentType.FieldLinks[$contentTypeColumnName] $contentTypeColumn.Hidden = $true $contentType.Update(); $categoryList.Update()
Set-SPManagedAccount -UseExistingPassword