*** HomePage Auto-Create Solution

Monday, January 12, 2015
 
PS:该项目为公司项目,我还是给他的名字屏蔽掉吧,这是我用PowerShell写的一个自动化升级工具,此为三部自动化工具的第二部。主要是用PowerShell去创建一个SharePoint页面,并且按照规定顺序对其自动进行配置。

Automation :

本次自动化代替操作完成的是HomePage配置文档中设置步骤的1到9步(属于做数据阶段),由于HomePage结合的模块众多,添加web parts到页面的过程需要调用Leo哥写的各种后台过程,光靠调用SharePoint API是无法完成的,所以第九步后半部分的“将webpart一一对应的加入WebPart Zone中”这一过程为手动添加过程。(属于测试阶段,检查咱们添加的后台过程是否正常运行,1. My Documents web part的title url是否自动添加到web part setting中;2. 保存并点击title,检查header能顺利实现跳转;2. 检查My Documents web part和Site Management web part的header是否包含特定的黑框样式。)

​整个HomePage部署自动化包含三个阶段,第一阶段(详见上一篇)和第二阶段都已经完成了,最后一个阶段就是配置web part和修改web part信息的过程我也会找时间尝试写成自动配置的脚本。(感谢大神超哥@Leo Jiang巨指点,虽然这次没试上web part的导出导入和API,不过下次写web part的配置过程时就可以派上用途啦。)

HomePage设置步骤:

  1. Add Solution APPS***HomePage.wsp to Farm
  2. Deploy solution到homepage所在web application
  3. 创建Site Collection,作为Home Page使用的Site Collection。
  4. 进入Site Setting页面,点击Site collection features,激活SharePoint Server Publishing Infrastructure,Custom Page Layout Feature
  5. 返回Site Setting页面,点击Manage Site features,激活SharePoint Server Publishing
  6. 返回Site Setting页面,点击Site collection features,激活Home Page Web Part Feature
  7. 设置Site的***ter page为Seattle
  8. 点击Site Contents,进入Pages Library,点击Ribbon上的New Documents,创建Article Page,Page Layout选择*** Home Page
  9. 创建好Home Page对应的publishing page

METHOD: Right click the tool and run it as administrator.

​Result: The *** Home Page will be created and open automatically.

Script Code:

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

$Time = Get-Date

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

$TodayIs = "Today is " + $Today.toString()

$TodayIs

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

Write-Host "Today's HomePage is creating..."

New-SPSite -URL $siteURL -OwnerAlias "soe\tuser2" -Language 1033 -CompatibilityLevel 15 -Template "STS#0"

$HomePageSiteCollection = Get-SPSite -Identity $siteURL

Write-Host "The HomePage site collection has been created successfully."

#Enable the site collection level publishing feature

Write-Host "Enabling the site collection level publishing feature..."

Enable-SPFeature -Id F6924D36-2FA8-4f0b-B16D-06B7250180FA -Url $siteURL

Write-Host "The site collection level publishing feature has been enabled."

#Enable the *** custom page layout feature

Write-Host "Enabling the *** custom page layout feature..."

Enable-SPFeature -Id AFBAA18A-CD2A-4866-AE01-EB1B35778687 -Url $siteURL

Write-Host "The *** custom page layout feature has been enabled."

#Enable the web level publishing feature

Write-Host "Enabling the web level publishing feature..."

Enable-SPFeature -Id 94c94ca6-b32f-4da9-a9e3-1f3d343d7ecb -Url $siteURL

Write-Host "The web level publishing feature has been enabled."

#Enable the HomePage web part feature

Write-Host "Enabling the HomePage feature..."

Enable-SPFeature -Id 8efd39bf-e322-41a6-80c8-a82c531f0fa1 -Url $siteURL

Write-Host "The HomePage feature has been enabled."

#Change the system ***ter page

Write-Host "Changing the system ***ter page into seattle..."

$HomePageSiteCollection.rootweb.***terUrl  = "/sites/" + $Today + ".HomePage/_catalogs/***terpage/seattle.***ter"

Write-Host "The system ***ter page has been changed."

#Change the site ***ter page

Write-Host "Changing the site ***ter page into seattle..."

$HomePageSiteCollection.rootweb.Custom***terUrl  = "/sites/" + $Today + ".HomePage/_catalogs/***terpage/seattle.***ter"

Write-Host "The site ***ter page has been changed."

#Save the change

Write-Host "Save the changes..."

$HomePageSiteCollection.rootweb.update()

Write-Host "The changes has been saved to the HomePage's site collection."

#Create the HomePage

Write-Host "Creating the HomePage automatically..."

$spWeb = $HomePageSiteCollection.rootweb

$pubWeb =[Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($spWeb)

$pageLayout = $pubWeb.GetAvailablePageLayouts()|where{$_.name -like '*DMSHome*'}

$HomePage = $pubWeb.AddPublishingPage("***HomePage.aspx",$pageLayout) #filename need end with .aspx extension

$HomePage.Update()

$HomePage.CheckIn("")

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

$spWeb.Dispose()

Write-Host "The HomePage has been created successfully..."

$HomePageURL = $siteURL + "/Pages/***HomePage.aspx"

$shell = New-Object -ComObject Shell.Application

$shell.Open($HomePageURL)

Read-Host "Press any key to continue"​​

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

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

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

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

    Home Page Web Parts Auto-Configuration 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. 【Docker】安装tomcat并部署应用

    安装tomcat 1.拉取tomcat镜像 docker pull docker.io/tomcat 查看镜像 docker images 2.启动tomcat 首先添加8090端口:firewall ...

  2. python之函数用法vars()

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法vars() #vars() #说明:返回对象object的属性和属性值的字典对象 ' ...

  3. MyEclipse下的Debug调试技巧汇总

    首先以debug模式启动tomcat,并文件中设断点,然后运行,当程序走到断点处就会转到debug视图下 [1]快捷键(F8)直接执行程序. [2]快捷键(F5)单步执行程序,遇到方法时进入. [3] ...

  4. CentOS 6.4安装配置LAMP服务器

    CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL) 作者: 字体:[增加 减小] 类型:转载 这篇文章主要介绍了CentOS 6.4安装配置LAMP服务器(Apache+ ...

  5. HDUOJ----湫湫系列故事——减肥记I

    湫湫系列故事——减肥记I Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Tota ...

  6. 面向对象程序设计(OOP设计模式)-结构型模式之装饰器模式的应用与实现

    课程名称:程序设计方法学 实验4:OOP设计模式-结构型模式的应用与实现 时间:2015年11月18日星期三,第3.4节 地点:理1#208 一.实验目的 加深对结构型设计模式的理解以及在开发中的实际 ...

  7. ubuntu(14.04) remote access(远程连接数据库)

    1.修改mysql的配置文件.   /etc/mysql/my.cnf 把 bind-address 的那行代码注释掉,保存退出,重启mysql

  8. centos(7) 使用yum进行安装lamp环境

    1.用yum安装Apache,Mysql,PHP. 1.1安装Apache yum install httpd httpd-devel 安装完成后,用service httpd start 1.2 安 ...

  9. 基于HTTP在互联网传输敏感数据的消息摘要、签名与加密方案

    基于HTTP在互联网传输敏感数据的消息摘要.签名与加密方案 博客分类: 信息安全 Java 签名加密AESMD5HTTPS  一.关键词 HTTP,HTTPS,AES,SHA-1,MD5,消息摘要,数 ...

  10. C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序

    C#中缓存的使用   缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可:  <%@ Outp ...