在使用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