设为首页 收藏本站
查看: 996|回复: 0

SharePoint 2010 最佳实践学习总结------第2章 SharePoint Windows PowerShell指南

[复制链接]

尚未签到

发表于 2015-9-25 11:58:00 | 显示全部楼层 |阅读模式
  

第2章 SharePoint Windows PowerShell指南
  SharePoint 2010是SharePoint系列产品中第一个开始支持Windows PowerShell的产品,在以前的版本中,SharePoint使用stsadm.exe来执行SharePoint管理和维护等工作,并通过在Windows控制台运行的批处理文件执行解决方案部署、站点备份还原等操作。

2.1 快速了解Windows PowerShell
  PowerShell更加容易读写,PowerShell将所有待处理的内容看成对象,管理员或者开发人员可以通过PowerShell调用.NET 对象或者COM对象。进一步,PowerShell对exe执行文件也有很好的支持,可以通过传参的方式让exe执行文件按照条件执行。 同MSDOS类似,有两种方式可以执行PowerShell:第一,管理员或开发人员可以直接在Windows PowerShell控制台窗口输入执行命令并执行;第二,管理员或开发人员也可以像批处理文件一样写好脚本后根据需要单击执行,或者通过如Windows定时任务这样的定时任务工具来调用
  用第一种方式熟悉PowerShell,单击屏幕左下角的“开始”按钮,单击所有程序->附件->Windows PowerShell打开Windows PowerShell控制台窗口。
  (1)输入“cd\”然后回车,此命令将把当前工作目录设置为C盘根目录。
  (2)输入“cls”然后回车,此命令会进行清屏。
  (3)输入“1 + 2”然后回车,PowerShell会进行计算并将计算结果显示
  Windows PowerShell建立在可以重复的被称之为命令集(cmdlets)的功能集合之上,命令集的命令多遵从“动词+名词”的命名规范。例如,内置的命令Get-Process,运行将返回当前服务器上正运行的Windows进程的列表。
  在Windows PowerShell的开发中,管道是一个非常重要的概念,用“|”表示,这实际上是借用了UNIX以及Linux平台下的概念,运行在UNIX平台上的CShell,以及BShell从很早的版本就开始使用“|”管道。通俗地理解管道,就是把在“|”之前运行命令执行的结果作为参数传给在“|”之后的命令作为输入参数
  通常如下: cmdlet1 | cmdlet2 | cmdlet3
  比如在上例中运行的Get-Process返回了太多的结果,但实际上我们只想了解关于IIS工作进程w3wp进程的相关信息,我们可以使用Where-Object命令在Get-Process命令返回的结果集里进行过滤,Where-Object使用“{}”里的内容作为过滤条件,“$_”代表将要被过滤的对象,“ProcessName”是该对象的某个属性,“-like”是比较条件,“w3*”通过通配符表明以“w3”开头,该过滤将返回所有进程名以“w3”开头的进程信息。
  
  需要注意的是,通常情况下Windows  PowerShell在做字符串比较时对大小写并不敏感,如果希望Windows PowerShell对大小写敏感,只需在比较符号前加入一个c,例如: Get-Process | Where-Object {$_.ProcessName -clike "W3*"}

2.2 书写Windows PowerShell脚本
  Windows PowerShell脚本就是以ps1作为后缀的文本文件,SharePoint管理员和开发人员可以使用记事本直接编辑脚本
  打开记事本,输入以下命令后存为script1.ps1,在C:\Scripts下面。 Write-Host “Hello World!” 保存好以后,首先尝试从Windows PowerShell控制台运行该文件,打开控制台,通过“Set-Location C:\Scripts”或者“cd C:\Scripts”,在PowerShell控制台窗口输入“.\script1.ps1”,其中后缀“ps1”可以省略不输入,“.”表示当前目录,“.\script1.ps1”表示当前目录下的script1.ps1文件
  我们还可以通过批处理文件来执行该脚本文件。在C:\Scripts目录下建立一个Auto.bat的批处理文件,在文件里输入以下内容: powershell.exe –Command “&{.\script1.ps1}” pause 需要输入pause是为了防止批处理文件运行完后自动退出,pause命令会强制命令窗口等待用户输入后再退出,最后可以直接通过右键单击脚本文件,从下拉列表里单击“Run  with  PowerShell”来运行脚本文件

2.3 使用Windows PowerShell集成开发环境
  Windows Server 2008服务器,可以通过管理工具->服务器管理->添加功能(Feature)将ISE作为功能添加进来
  通过“$”来创建变量sum1和sum2,而不需要向C#里面那样事先声明,下面再看一个带流程控制的例子:



$names = “YangGuo”, “XiaoLongNv”, “GuoJing”, “HuangRong”
Foreach($name in $names){   Write-Host $name }
Windows PowerShell强大的一处在于,在PS脚本里可以直接调用任意.NET 对象,比如以下代码就会调用New-Object命令创建一个.NET 的DateTime对象:
$date = New-Object –TypeName System.DateTime –ArgummentList @(1525, 8, 10, 0, 0, 0) $message = “GuoJing was born at “ + $date.ToLongDateString()
Write-Host $message

  
  执行输出结果如下:



GuoJing was born at Monday, August 10, 1525
PowerShell不仅可以创建新的.NET 对象,还可以调用.NET 对象的静态属性。例如,开发人员可以通过[System.DateTime]::Today的方式调用DateTime类的静态成员。
$today = [System.DateTime]::Today
Write-Host $today.ToLongDateString()
Write-Host $today.ToString(“MM/dd/yy”)
Write-Host $today.AddDays(100).ToString(“MMMM d”)

  
  执行输出结果如下: Wednesday, May 25, 2

2.4使用Windows PowerShell管理SharePoint

2.4.1 使用PowerShell创建Web应用程序



$name = "Web Application from PowerShell"
$port = 10000
$url = http://win-i53t3ji4m13
$appPoolName = "SharePoint - 10000"
$appPoolAccount = "win-i53t3ji4m13\SPService10000" New-SPWebApplication -Name $name -Port $port  -URL $url -ApplicationPool $appPoolName –ApplicationPoolAccou

  
  上述脚本首先设置了一些创建新的Web应用程序必需的信息,例如名字、端口号、URL、新的应用程序池名字、即将用在新的应用程序池上的服务账号,然后调用SharePoint PowerShell命令New-SPWebApplication创建Web应用程序

2.4.2 使用PowerShell创建网站集
  使用以下命令:



$title= "Creating site collection from PowerShell"
$url = "http://win-i53t3ji4m13:10000"
$owner = "win-i53t3ji4m13\Administrator"
$template = "STS#1" # delete target site collection if it exis
$targetSite = Get-SPSite | Where-Object {$_.Url -eq $url}
if ($targetSite -ne $null)
{   Remove-SPSite -Identity targetSite -Confirm:$false }
# create new site collection
New-SPSite -URL $url -Name $title -OwnerAlias $owner -Template $template

  
  命令执行的时候先判断站点集是否存在,如果存在先删除。另外-Template指定了创建站点时使用的模板
  

2.5 常用的shell语句
  在SharePoint Manage Shell中执行部署、卸载、升级等一些列跟解决方案相关的工作
  添加Solution到ServerFarm
  Add-SPSolution –LiteralPath  C:\Test.wsp
  或
  Add-SPSolution C:\Test.wsp
  部署指定的Solution到指定的WebApplication
  Install-SPSolution -Identity Test.wsp –WebApplication http://testetw/   GACDeployment
  意为:将名为Test的解决方案部署到http://testetw/应用程序中,并为其部署全局缓存,
  更新部署Solution
  Update-SPSolution –Identity Test.wsp –LiteralPath C:\Update\Test.wsp –GACDeployment
  回收已部署的Solution
  Uninstall-SPSolution –Identity Test.wsp –WebApplication http://testetw/
  移除Solution
  Remove-SPSolution –Identity Test.wsp

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-118663-1-1.html 上篇帖子: SharePoint 2010 PowerShell 系列 之 文档管理 高级应用和企业案例(文档迁移) 下篇帖子: SharePoint自动化部署,利用PowerShell 导入用户至AD——PART II
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表