如何修改现有SharePoint网站?

时间:2009-02-01 21:29:27

标签: sharepoint powershell scripting

我经常让客户请求更改属性,例如服务器场中所有现有站点上所有文档库的版本历史记录设置。

到目前为止,我能够想到的最好的解决方案是在Powershell中编写脚本,在运行之前测试脚本,然后祈祷我没有忽略一些关键的东西。 有更好更安全的方式吗?

3 个答案:

答案 0 :(得分:3)

我个人的“自定义工作流程”如下:

  1. PowerShell中的原型解决方案。凌乱。
  2. 导出我凌乱的PowerShell命令历史记录。
  3. 将命令历史记录粘贴到Visual Studio中,逐行转换为C#(这是一个主要是机械过程,转换管道除外)
  4. 作为SharePoint解决方案部署的功能包(使用WSPBuilder扩展);特别是,从功能接收器调用我转换的“脚本”。同时编写代码,以便在停用功能时撤消自定义。
  5. 在开发中测试,在QA中测试。 5b。如果这是一个影响很大的巨大脚本,我会要求我们的DBA将大型内容数据库恢复到QA数据库服务器中;然后我会将此生产副本附加到我们的QA服务器场,并针对生产数据副本运行脚本。这是我们从WSSv2 / 2003版本迁移的关键步骤;我想我在迁移到2007之前已完成了四次完整的测试。无论如何,如果你需要它,你需要它。
  6. 在生产中安装/激活功能。
  7. 它比“在prod服务器上运行脚本”重得多,但是如果你正在寻找一种“更好”的方式来推动自定义,那么这是在SharePoint中执行它的正确方法。 SharePoint的功能和解决方案框架专为此方案而设计。

    是的,我使用PowerShell进行原型设计/对象搜寻。

    编辑:我没有提及,但您需要制定灾难恢复计划来恢复所有自定义设置。这是它开始变得疯狂的地方,具体取决于您所做的自定义。在上面的示例中,内容数据库存储数据,但其他自定义项在DR情况下并不容易还原,特别是在配置数据库中存储SSP和服务器场级别自定义项,或者您已修改了Web .config或IIS元数据库。

答案 1 :(得分:1)

好吧,如果你想自动化某些东西,PowerShell可能是最好的方法之一。您可以在尝试之前查看正在运行的实际命令(与编译后无法达到峰值的内容相比)。

根据PowerShell脚本的作用,您通常可以使用简单的参数,如-WhatIf和-Confirm,用于对系统有影响的cmdlet(删除,移动等)。

-WhatIf提供:输出,指示在运行命令时通常会执行的操作。您可以看到将要采取的行动。

- 确认:在实际采取行动之前,基本上会问你“你确定要做xyz”。

使用-WhatIf,如果您的所有信息都滚出屏幕,您只需使用Start-Transcript启动控制台会话日志,然后您可以查看该日志以仔细查看本应采取的所有操作。这样,您可以在运行它们之前确保命令正确。

答案 2 :(得分:0)

首先进行内容备份,然后运行脚本。

通过stsadm或数据库进行备份。

不适用于任何中央管理员更改。