目前我正在开发一个将 SP2013 迁移到 SP2016 的工具(使用 ShareGate 是没有选项管理说:/)我正在做的是遍历 SP2013 中的所有网站并以 json 的形式执行备份,保留所有列表,物品、文件等。
我的导出结构如下所示:
structure.json // contains a tree view of webs and their subwebs
123-456-789-000/ // this is a web
|-web.json // contains all the web data like lists, items etc.
|-lists/
|--listname/
|---document.txt
|---...
目前我坚持导入文档 - 更具体的是他们的版本。我正在尝试导入一个文档,这完全没有问题,但是创建一个版本需要一个签出/签入周期。签入会覆盖我的编辑器和修改日期 - 导致农场管理员成为我所有文档的最后一个编辑器(应该是在 SP2013 中执行此操作的用户)。
经过一番谷歌搜索后,我找到了ValidateUpdateListItem,但这会导致签入(保留编辑器),但只会创建一个次要版本 - 不过我需要一个主要版本。
在 SSOM 中,我将使用new SPSite(url, userToken)进行模拟并在用户上下文中执行签入——但这在 CSOM 中是没有选择的。
有人遇到过这个问题,还是我走错路了?