Home Page Web Parts Auto-Configuration

PS:该项目为公司项目,我还是给他的名字屏蔽掉吧,这是我用PowerShell写的一个自动化升级工具,此为三部自动化工具的第三部,是用PowerShell配置SharePoint页面的web parts' settings以及生成相关的SharePoint数据以支持web part的正常工作。

Prerequisite:

本次内容为*** Home Page自动部署三步中最后一步,将完成*** HomePage主Jira上“HomePage各web part配置文档”中第九步之后的所有关于配置web part的相关内容。

General:

自动配置My Documents web part settings

自动配置Site Management web part settings

自动配置My Tasks web part settings

自动创建Scanned Documents所需要的Task List并命名为“***Tasks”

自动配置Administration web part settings

自动配置Quick Links web part settings

自动创建Quick Links web part所关联的Links List

自动生成Title,Description,Order,RedirectURL,RedirectMethod五个column

自动添加五种column到All Items view下

*由于Workflow属用户第三方Service,所以本次配置中并不包含Workflow相关。

Method:Right click and run it with PowerShell.

#This third solution should be used after the second solution which keeps a name of "HomePage Auto-Create"

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

Write-Host "Initializing..."

$Time = Get-Date

$Today = $Time.year.toString() + "." + $Time.month.toString() + "." + ($Time.day-1).toString()

$siteURL = "https://teamsite.migration.net/sites/" + $Today + ".HomePage"

$HomePageURL = "https://teamsite.migration.net/sites/" + $Today + ".HomePage/Pages/***HomePage.aspx"

$HomePageSiteCollection = Get-SPSite -Identity $siteURL

$HomePageWeb = $HomePageSiteCollection.rootweb

$HomePagePubWeb = [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($HomePageWeb)

$HomePage = $HomePagePubWeb.GetPublishingPage($HomePageURL)

Write-Host "Begin to configure the HomePage web parts..."

$HomePage.CheckOut()

$HomePageWeb.AllowUnsafeUpdates = $true

$limitedWebPartManager = $HomePage.ListItem.File.GetLimitedWebPartManager([System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared)

#Modify the configuration information of the My Documents web part.

Write-Host "Begin to configure the My Documents web part..."

$MyDocumentsWebPart = $limitedWebPartManager.WebParts|where{$_.DisplayTitle -like '*My Documents*'}

$MyDocumentsWebPart.SearchServiceName = "SharePoint_Search_Proxy_***"

$MyDocumentsWebPart.DataBaseName = "DocAve6_ReportDB_***"

$MyDocumentsWebPart.ServerName = "***DB"

$MyDocumentsWebPart.Description = "Document Management Web Part"

$MyDocumentsWebPart.ChromeType = "TitleOnly"

#Modify the configuration information of the Site Management web part.

Write-Host "Begin to configure the Site Management web part..."

$SiteManagementWebPart = $limitedWebPartManager.WebParts|where{$_.DisplayTitle -like '*Site Management*'}

$SiteManagementWebPart.DataBaseName = "DocAve6_ReportDB_***"

$SiteManagementWebPart.ServerName = "***DB"

$SiteManagementWebPart.SearchServiceName = "SharePoint_Search_Proxy_***"

$SiteManagementWebPart.ChromeType = "TitleOnly"

#Modify the configuration information of the My Tasks web part.

Write-Host "Begin to configure the My Tasks web part..."

$MyTasksWebPart = $limitedWebPartManager.WebParts|where{$_.DisplayTitle -like '*Task*'}

$MyTasksWebPart.ChromeType = "TitleOnly"

#Create the task list

#$HomePageWeb.ListTemplates|where{$_.name -like 'tasks'}

Write-Host "Begin to create the tasks list with the name of '***Tasks' to work for the scanned documents module..."

$listTemplate = [Microsoft.SharePoint.SPListTemplateType]::Tasks

$ListCollection = $HomePageWeb.Lists

$ListCollection.Add("***Tasks","Work for *** HomePage My Tasks web part.",$listTemplate)

$ListCollection.Update()

$TasksList = $HomePageWeb.Lists|where{$_.title -like '***Tasks'}

$TasksList.OnQuickLaunch = "True"

$TasksList.Update()

#Scanned Documents settings

Write-Host "Begin to configure the Scanned Documents module..."

$MyTasksWebPart.ScanDocument_Title = "Scanned Documents"

$MyTasksWebPart.ScanDocument_LinkScript = "#"

#Service Catalogue settings

Write-Host "Begin to configure the Service Catalogue module..."

$MyTasksWebPart.ServiceCatalogue_Title = "Service Catalogue"

$MyTasksWebPart.ServiceCatalogue_Link = "#"

#Workflow settings

Write-Host "Begin to configure the Workflow module(Only basic)..."

$MyTasksWebPart.Workflow_Title = "Workflow"

$MyTasksWebPart.Workflow_Link = "#"

#SS settings

Write-Host "Begin to configure the Target for the scanned documents module..."

$MyTasksWebPart.SS_TargetWebUrl = $siteURL

$MyTasksWebPart.SS_TargetListName = "***Tasks"

$MyTasksWebPart.SS_RequestRootUrl_SC = "https://***damanager.migration.net:15999"

#Create the Links list

#$HomePageWeb.ListTemplates|where{$_.name -like 'tasks'}

Write-Host "Begin to create the Links list to work for the Quick Links web part..."

$listTemplate = $HomePageWeb.ListTemplates|where{$_.name -like 'custom list'}

$ListCollection = $HomePageWeb.Lists

$ListCollection.Add("Links","Work for *** HomePage Quick Links web part.",$listTemplate)

$ListCollection.Update()

$LinksList = $HomePageWeb.Lists|where{$_.title -like 'Links'}

Write-Host "Add the quick launch for Links list..."

$LinksList.OnQuickLaunch = "True"

#Create column fields to the list

Write-Host "Create the fields..."

$TextFieldType = [Microsoft.SharePoint.SPFieldType]::Text

$NumberFieldType = [Microsoft.SharePoint.SPFieldType]::Number

$ChoiceFieldType = [Microsoft.SharePoint.SPFieldType]::Choice

#Add choices under the choice field

$choices = New-Object System.Collections.Specialized.StringCollection

$choices.Add("_blank")

$choices.Add("_self")

#Add the fields to the Links List

Write-Host "Add the fields to the Links list..."

$DescriptionField = $LinksList.Fields.Add("Description",$TextFieldType,$false)

$OrderField = $LinksList.Fields.Add("Order",$NumberFieldType,$false)

$RedirectURLField = $LinksList.Fields.Add("RedirectURL",$TextFieldType,$false)

$RedirectMethodField = $LinksList.Fields.Add("RedirectMethod",$ChoiceFieldType,$false,$false,$choices)

#Add the fields to the Links List's default view

Write-Host "Add the fields to the All Items view..."

$LinksDefaultView = $LinksList.views|where{$_.views -like 'All Items'}

$LinksDefaultView.ViewFields.Add($DescriptionField)

$LinksDefaultView.ViewFields.Add($OrderField)

$LinksDefaultView.ViewFields.Add($RedirectURLField)

$LinksDefaultView.ViewFields.Add($RedirectMethodField)

$LinksDefaultView.Update()

#Add the "Try to find a site?" item to the Links list

Write-Host "Add the 'Try to find a site?' item to the Links list..."

$DefaultListItem = $LinksList.AddItem()

$DefaultListItem["Title"] = "Try to find a site?"

$DefaultListItem["Description"] = "FNA(Financial News Alert)"

$DefaultListItem["Order"] = 1

$DefaultListItem["RedirectURL"] = "https://***damanager.migration.net:15999/SiteCollectionDirectoryReport/ViewPublishReports?SPHostUrl=https://teamsite.migration.net/sites/ForHomePageTesting/"

$DefaultListItem["RedirectMethod"] = "_self"

$DefaultListItem.Update()

$LinksList.Update()

#Modify the configuration information of the Quick Links web part.

Write-Host "Begin to configure the Quick Links web part..."

$QuickLinksWebPart = $limitedWebPartManager.WebParts|where{$_.DisplayTitle -like '*Quick Links*'}

$QuickLinksWebPart.ChromeType = "TitleOnly"

#Modify the configuration information of the Administration web part.

Write-Host "Begin to configure the Administration web part..."

$AdministrationWebPart = $limitedWebPartManager.WebParts|where{$_.DisplayTitle -like '*Administration*'}

$AdministrationWebPart.ChromeType = "None"

$AdministrationWebPart.DesktopActivityLogURL = "https://teamsite.migration.net/sites/activitylog test"

$AdministrationWebPart.TaxonomyManagementURL = "https://teamsite.migration.net/sites/Taxonomy%20Case/_layouts/15/***TaxonomyManagement/TaxonomyManagement.aspx"

$AdministrationWebPart.CollaborationDashboardURL = "https://teamsite.migration.net/sites/ForHomePageTesting/SitePages/collabration.aspx"

$AdministrationWebPart.ServiceCatalogueAdministrationURL = "https://***damanager.migration.net:15999"

$AdministrationWebPart.DocAveURL = "https://***damanager.migration.net:14999"

#$AdministrationWebPart.WorkflowWSUrl

#$AdministrationWebPart.WorkflowWSMethod

#$AdministrationWebPart.WorkflowJUMPUrl

#Save the changes to the web parts

Write-Host "Begin to save all the configurations..."

$limitedWebPartManager.SaveChanges($MyDocumentsWebPart)

$limitedWebPartManager.SaveChanges($SiteManagementWebPart)

$limitedWebPartManager.SaveChanges($MyTasksWebPart)

$limitedWebPartManager.SaveChanges($QuickLinksWebPart)

$limitedWebPartManager.SaveChanges($AdministrationWebPart)

$HomePage.Update()

$HomePage.CheckIn("")

$HomePage.ListItem.File.Publish("")

$HomePageWeb.Dispose()

Write-Host "The HomePage has been configured successfully!"

Read-Host "Press any key to continue"

PowerShell实现基于SharePoint的网站HomePage Auto-Configure Solution的更多相关文章

  1. PowerShell实现基于SharePoint的网站HomePage Auto-Upgrade Solution

    *** Solution Auto-Upgrade Solution Tuesday, January 06, 2015 PS:该项目为公司项目,我还是给他的名字屏蔽掉吧,这是我用PowerShell ...

  2. PowerShell实现基于SharePoint的网站HomePage Auto-Create Solution

    *** HomePage Auto-Create Solution Monday, January 12, 2015   PS:该项目为公司项目,我还是给他的名字屏蔽掉吧,这是我用PowerShell ...

  3. 实现一个基于 SharePoint 2013 的 Timecard 应用(上)

    在 SharePoint 2013 上面实现一个 Timecard 应用的想法来自一个真实的需求,而实现的方案在我脑海里面盘旋已经很久了,终于这几天准备安排点儿时间将它实现出来. “ We start ...

  4. 优化移动设备上SharePoint 2013网站

    优化移动设备上SharePoint 2013网站 本文由SPFarmer翻译自Waldek Mastykarz的文章 移动市场在持续的增长.在不远的将来,使用移动设备浏览站点将会超过电脑.为了保证用户 ...

  5. SharePoint 开启网站匿名访问图文详解

    SharePoint 开启网站匿名,需要先开启web application的匿名访问,然后开启site的匿名访问.特别的,site可以选择整个网站开启或者列表和库开启匿名,如果选择列表和库开启匿名, ...

  6. 基于jQuery的网站首页宽屏焦点图幻灯片

    今天给大家分享一款基于jQuery的网站首页宽屏焦点图幻灯片.这款焦点图适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预览 ...

  7. 基于jQuery商城网站全屏图片切换代码

    基于jQuery商城网站全屏图片切换代码.这是一款商城网站全屏多张图片滑动切换代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="slid ...

  8. SharePoint 2013网站突然不能登录了。

    SharePoint 2013网站突然不能登录了,访问的时候,总是报错: The list has not shared with you.   原因: 原来我不知道什么时候把web applicat ...

  9. 在PowerShell中操作SharePoint对象

    1. 用PowerShell创建一个SharePoint内容对象创建一个自定义列表:$SPSite = New-Object Microsoft.SharePoint.SPSite("htt ...

随机推荐

  1. 使用openssl进行证书格式转换

    各类证书由于存储的内容不同(如是否包含公钥/私钥是否加密存储/单一证书或多证书等).采用编 码不同(DER/BASE64).标准不同(如PEM/PKCS),所以尽管X.509标准规定了证书内容规范,但 ...

  2. highstock K线图 深入研究

    K线图,相信每个股民都不陌生,如何用SVG画好一个K线图是一个难题. 我选择用highstock做为画图组件,适当的修改了一下源码,参考了数个财经网站的案例,完成了一个不太成熟的K线图,欢迎大家批评指 ...

  3. 关于 while(1)和for(;;)效率问题的一点想法

    这几天看到好友的文章关于while(1)和for(;;)效率的讨论,手痒说了两句.回头一寻思,自己也仅仅是判断.没有做不论什么实验,我们就看看这两种写法究竟有什么差别: 实验环境:IAR EWARM ...

  4. springmvc+spring框架

    jar包 com.springsource.javax.validation-1.0.0.GA.jar com.springsource.org.aopalliance-1.0.0.jar com.s ...

  5. Linux目录结构及解释(附图)

    ___/bin (binary二进制) 常用Linux命令 ___/boot 存放着启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件 ___/cdrom 这个目录在你刚刚安装系统的时候 ...

  6. HDUOJ-----Brave Game

    Brave Game Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  7. Android Developers:使ListView滑动流畅

    流畅滑动ListView的关键是保持应用程序的主线程(UI线程)从免于繁重处理.确保你的任何硬盘访问,网络访问或者SQL访问在一个单独的线程中.为了测试你的应用个程序的状态,你能启动StrictMod ...

  8. pythonl练习笔记——爬虫的初级、中级、高级所匹配的知识

    1 初级爬虫 (1)Web前端的知识:HTML, CSS, JavaScript, DOM, DHTML, Ajax, jQuery,json等: (2)正则表达式,能提取正常一般网页中想要的信息,比 ...

  9. Selenium-Grid工作原理

    selenium-grid是由一个hub节点和若干个代理节点组成.hub用来管理各个代理节点的注册和状态信息,并且接受远程客户端代码的请求调用,然后把请求的命令再转发给代理节点来执行.使用seleni ...

  10. 命名管道FIFO和mkfifo函数

    进程间通信必须通过内核提供的通道,而且必须有一种办法在进程中标识内核提供的某个通道,前面讲过的匿名管道是用打开的文件描述符来标识的.如果要互相通信的几个进程没有从公共祖先那里继承文件描述符,它们怎么通 ...