如何在SharePoint 2003和SharePoint 2007之间带版本地移动文档?

5

我急需一种工具,能够将SharePoint 2003网站上的文档及其旧版本复制到SharePoint 2007网站上。


您是否知道有任何简单(最好是免费)的工具可以实现这一功能?


我收到了相同的401未授权响应。不知道你的配置是怎样的?你是使用Web服务来完成这个任务吗? - user199870
3个回答

5
这可能对你来说有些晚了,但我需要将一个SharePoint 2003网站迁移到一个SharePoint 2007网站,并保留所有文档库中的版本和文件元数据。官方的迁移或升级方法失败了,所以我编写了一个工具来在目标SharePoint 2007服务器上运行,但可以从2003服务器复制所有列表和文档库以及元数据和版本信息。该工具在http://sourceforge.net/projects/splistcp上提供源代码,欢迎使用和改进。

哇,这个程序非常需要。太棒了! - Lee
这个工具能够迁移文档库/列表上已存在的用户警报,以及元数据(创建/修改等)吗? - Thiago Silva
我不这么认为,我猜用户警报是MySite功能的一部分,而不是列表数据的一部分。 - Michael Baltaks

3
我们最近将SPS 2003迁移到了MOSS 2007,我试图找出如何完成此操作。可惜的是,并没有一个很好的方法。最终,我使用SPS 2003内容数据库备份和MOSS 2007 VM进行数据库附加升级整个SPS 2003门户网站。然后,我使用内容迁移命令(stsadm -o export,stsadm -o import)将包含所有版本的列表移动到“真正的”MOSS 2007网站集合中。
这个页面给了我执行数据库迁移的步骤。
还有一些不错的命令可以用于仅移动一个列表这里。值得一提的是,迁移命令(例如gl-exportlist,gl-importlist)仅在两个MOSS 2007安装之间起作用。
我肯定需要尝试使用stsadm扩展和内置命令多次,才能得到令人满意的结果。真正的关键是将数据库迁移到虚拟机中,以便将所有内容都放入MOSS中,这样就可以使用那些工具了。
我知道这似乎是一项疯狂的工作量,但这是我找到的唯一方法,可以在不花费数千美元购买AvePoint的DocAve Migrators之类的产品的情况下完成它。而且真的并没有那么糟糕。
需要注意的一件事是,如果您在导出和导入时包含用户安全性,则会在生产站点集合中添加大量SharePoint组和用户。

1

splistcp工作得非常好,但是有时在尝试移动文件时会出现超时错误。我收到了一个超时消息,然后是一个文件找不到的消息,然后程序就退出了。我下载了源代码,在MBSPListItemsMap.cs中发现程序正在尝试获取文件。

我在大约620行左右的catch代码周围添加了一个finally块,以写入控制台告诉我系统正在做什么:

                         ` catch (Exception e)
                        {
                            Console.WriteLine(e.Message);
                            bDownloadError = true;
                        }
                        finally
                        {
                            if (bDownloadError)
                            {
                                Console.WriteLine("Error in downloading file: " + fileName);
                                Console.WriteLine("Moving to next file");
                            }

                        }
                        if (!bDownloadError)
                        {
                            if (Program.beVerbose)
                            {
                                Console.WriteLine("Attaching " + fileName);
                            }
                            byte[] fileContents = MBSPSiteMap.ByteArrayFromFilePath(downloadPath);
                            newItem.Attachments.Add(fileName, fileContents);
                            File.Delete(downloadPath);
                        } `

我还增加了一些Console.WriteLine语句,以便让我知道系统正在做什么。否则,系统只是在运行,你无法很好地知道它在做什么。
这个程序对我来说非常有帮助,因为我需要移动770个记录,其中包含大约20列信息和几个附件。
谢谢你,迈克尔!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接