我正在拼命寻找一种工具,该工具允许我将带有旧版本的文档从 SharePoint 2003 复制到 SharePoint 2007 站点。
你知道有什么简单的(最好是免费的)工具可以做到这一点吗?
3 回答
这对您来说可能为时已晚,但我需要从 SharePoint 2003 站点迁移到 SharePoint 2007 站点,并且不仅要保留版本,还要保留所有文档库中的文件元数据。迁移或升级的官方方法失败了,所以我最终编写了一个工具,该工具必须在目标 SharePoint 2007 服务器上运行,但可以从 2003 服务器复制所有列表和文档库,并且元数据和版本完好无损。它的源代码位于http://sourceforge.net/projects/splistcp,因此请随意使用和改进它。
我们最近从 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 组和用户添加到您的生产网站集。
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 列信息和几个附件。
谢谢迈克尔!!!!