我正在拼命寻找一种工具,允许我将旧版本的文档从SharePoint 2003复制到SharePoint 2007网站。
你知道任何简单的(最好是免费的)工具吗?

有帮助吗?

解决方案

我们最近从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扩展和内置命令两次尝试。真正的关键是将数据库迁移到VM以将所有内容都集成到MOSS中,以便我可以使用这些工具。

我知道这似乎是一项疯狂的工作,但这是我找到完成工作的唯一方法,而不会为像AvePoint的DocAve Migrators这样的东西投入数千美元。它真的不是 坏。

需要注意的一点是,如果在执行导出和导入时包含用户安全性,则会将大量SharePoint组和用户添加到生产网站集中。

其他提示

这对您来说可能为时已晚,但我需要从SharePoint 2003网站迁移到SharePoint 2007网站,不仅要保留版本,还要保留所有文档库中的文件元数据。迁移或升级的官方方法失败,因此我最终编写了一个必须在目标SharePoint 2007服务器上运行的工具,但可以从2003服务器复制所有列表和文档库,其元数据和版本完整无缺。它可以在 http://sourceforge.net/projects/splistcp 上找到,所以请随意使用和改进它

splistcp工作得非常好,但是当我试图移动文件时,我偶尔会出现一次超时错误。我收到一个超时消息,然后是一条无法找到文件的消息,然后该程序就退出了。我下载了MBSPListItemsMap.cs中的源代码,程序试图获取该文件。

我在第620行的catch代码下面添加了一个finally块,写给consule告诉我系统正在做什么:

                         ` 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列信息和几个附件。

感谢MICHAEL !!!!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top