在使用SharePoint的时候我们常常需要做这样一个操作:把某个列表(或文档库)从一个网站转移到另一个网站上去。
比较常见的做法是,把这个列表存为模板文件,然后再在新的网站位置创建一遍。但这种方法比较麻烦,步骤繁琐,而且还受网站模板类型的限制。
SharePoint的对象模型里提供了导入导出内容的功能,其粒度可达列表条目级。
stsadm命令中内置的“import/export”操作就是使用的这套API,但只能操作网站级别的内容。
为了能够便捷的移动列表内容,或者对某个指定的列表进行归档,我开发了两个stsadm命令的扩展操作。
举例:我想把“http://site1”网站里的列表“ABCList”导出并导入到“http://site2”网站里,就可以用以下的命令完成:
stsadm -o exportlist -siteurl http://site1 -listname ABCList -filename d:/abclist.cmp (导出列表到一个文件)
stsadm -o importlist -siteurl http://site2 -filename d:/abclist.cmp (把一个文件导入到SharePoint网站里,恢复成一个列表)
语法说明:
列表导出操作(exportlist)
stsadm -o exportlist
-siteurl <SharePoint Site URL>
-listname <List Display Name>
-filename <Content Migration Package File Name>
[-overwrite]
[-nocontent]
注:-nocontent:只导出列表结构,不包含列表内容。
列表导入操作(importlist)
stsadm -o importlist
-siteurl <SharePoint Site URL>
-filename <Content Migration Package File Name>
[-retainobjectid]
[-originalinfo <all|none|systemaccount>]
注:-retainobjectid:导入回导出位置,可用在类似备份还原的场景下。
-originalinfo :"all"为保留一切原始信息,即导入的数据保持原修改时间和创建者信息。"none"为不保留上述信息。"systemaccount"为修改创建者信息为系统帐户。此选项默认为"all"。
此扩展命令以wsp解决方案包的形式安装部署,下载地址:
http://www.live-share.com/files/302411/xc_stsadmextension.zip.html