我经常有客户请求更改属性,例如服务器场上所有现有网站上所有文档库的版本历史记录设置。如何修改现有的SharePoint网站?
到目前为止,我已经能够想到的最好的解决方案是在Powershell中编写脚本,在运行脚本之前测试脚本,然后祈祷我没有忽略关键的事情。 有更好更安全的方法吗?
我经常有客户请求更改属性,例如服务器场上所有现有网站上所有文档库的版本历史记录设置。如何修改现有的SharePoint网站?
到目前为止,我已经能够想到的最好的解决方案是在Powershell中编写脚本,在运行脚本之前测试脚本,然后祈祷我没有忽略关键的事情。 有更好更安全的方法吗?
我个人的 “自定义工作流程” 如下:在PowerShell中
它比“在prod服务器上运行脚本”重要得多,但如果您正在寻找一种“更好”的方式来推进自定义,这是在SharePoint中执行此操作的正确方法。 SharePoint的功能和解决方案框架专为此场景而设计。
是的,我大量使用PowerShell进行原型设计/对象spelunking。
编辑:我没有提到,但你需要有一个灾难恢复计划,可以恢复所有的自定义设置。这是它开始疯狂的地方,取决于你所做的定制。在上面的示例中,内容数据库存储数据,但其他自定义设置在灾难恢复情况下并不容易恢复,尤其是在配置数据库中存储SSP和服务器场级自定义设置的情况下,或者修改了网络.config或IIS元数据库。
首先进行内容备份,然后运行脚本。
通过stsadm或数据库进行备份。
不适用于任何中央管理更改。
那么,如果你想自动化一些东西,PowerShell可能是最好的方法之一。您可以在尝试之前看到正在运行的实际命令(与编译时无法达到的内容相比)。
根据PowerShell脚本将要执行的操作,您可以经常使用简单的参数,例如-WhatIf和-Confirm来对cmdlet产生影响(删除,移动等)。
-WhatIf规定:指示运行命令时通常执行的动作的输出。你可以看到将要采取的行动。
确认:在实际执行操作之前,您基本上会被问到“您确定要执行xyz”。
随着-WhatIf,如果你的所有信息都在屏幕上滚动,你可以简单地使用Start-Transcript开始你的控制台会话的日志,然后你可以查看该日志仔细查看所有的行为拍摄。这样你可以在运行之前确保你的命令是正确的。