走进Sharepoint2013至Sharepoint Online迁移②
2015-12-02 21:00
609 查看
首先,我们先来实际操作,迁移本地文件服务器资料至Sharepoint Online
安装Migration API的安装先决条件:.NET4.0 下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=17718SharePointOnline Management Shell 下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=35588Migration API也可以安装在Windows7等客户端操作系统,并不一定要安装在Server操作系统Migration API迁移时会用到的命令https://technet.microsoft.com/zh-cn/library/mt143608.aspx
![](http://s1.51cto.com/wyfs02/M00/76/EA/wKiom1ZeuSXiw0xbAABnlpG4ypk062.png)
安装完成Sharepoint Online Mnagement Shell之后,以管理员身份运行
![](http://s2.51cto.com/wyfs02/M01/76/EA/wKiom1ZeuaWBLIwQAABStgsMPVk864.png)
首先,第一步,运行命令 Connect-SPOService -Url https://prowz-admin.sharepoint.com ,连接到Sharepoint Online 管理中心 ,并输入Sharepoint Online管理员账户密码
![](http://s1.51cto.com/wyfs02/M02/76/EA/wKiom1ZeuiLCdSASAADDU9jfPys951.png)
如果身份验证正确后即可进行到下一步操作
![](http://s3.51cto.com/wyfs02/M02/76/E9/wKioL1Zeuu7gZcinAABH1OkO33Y128.png)
本次我们是将一个网络共享里面的内容迁移过去,记录网络共享路径,并确保具备读取权限
![](http://s1.51cto.com/wyfs02/M01/76/E9/wKioL1Zeu0Cz48r8AAC8SttddDA356.png)
准备两个文件夹,一个用于存放Migration API第一次转换的文件,一个用于存放Migration API第二次转换的Log文件
![](http://s3.51cto.com/wyfs02/M01/76/EA/wKiom1Zeu0ng-YeoAACcR2JNwKY931.png)
准备完成后,运行命令 New-SPOMigrationPackage -SourceFilesPath "\\d-dn792-4\File" -OutputPackagePath"c:\mig\spotemp" -TargetWebUrl "https://prowz.sharepoint.com" -TargetDocumentLibraryPath "Shared Documents"
-SourceFilesPath 指向来源文件服务器路径 ,后期这个路径也需要上传到Azure的容器,最终存放到Sharepoint Online的文档库-OutputPackagePath 文件服务器第一次转换为Sharepoint Export所要存放的路径-TargetWebUrl 目标要迁移到的Sharepoint Online网站-TargetDocumentLibraryPath 目标要迁移到的Sharepoint Online文档库
![](http://s5.51cto.com/wyfs02/M02/76/EA/wKioL1ZevVjxNVaPAAAn8mUKwyQ471.png)
![](http://s5.51cto.com/wyfs02/M00/76/EB/wKiom1ZevPHgkw8kAAA_KnvJqLE328.png)
命令执行完成后,打开之前建立的文件夹就可以看到第一次转换的内容
![](http://s2.51cto.com/wyfs02/M00/76/EB/wKiom1ZevTHzAZJVAAEqe27QYUI353.png)
第一次转换完成后,即产生了文件服务器所特定生成的SharePoint Export元数据文件,我们还需要将这种元数据库文件转换为Sharepoint Online所能支持的文件,即进行第二次转换,执行命令
ConvertTo-SPOMigrationTargetedPackage -SourceFilesPath "\\d-dn792-4\File" -SourcePackagePath "C:\mig\spotemp" -OutputPackagePath "C:\mig\spomigpack" -TargetWebUrl "https://prowz.sharepoint.com" -TargetDocumentLibraryPath "Shared Documents"
-SourceFilesPath 指向来源文件服务器路径
-SourcePackagePath 指向第一次转换生成的路径
-OutputPackagePath 指向要生成的转换log路径
-TargetWebUrl 目标要迁移到的Sharepoint Online网站
-TargetDocumentLibraryPath 目标要迁移到的Sharepoint Online文档库
![](http://s2.51cto.com/wyfs02/M00/76/EB/wKiom1Zevs_zTk8gAAA5VXAn6ks745.png)
![](http://s2.51cto.com/wyfs02/M02/76/EA/wKioL1ZevzeB9rdDAAAzzZ6sP6c909.png)
![](http://s2.51cto.com/wyfs02/M01/76/EB/wKiom1ZevtDwitgYAAA8k6eOi3A976.png)
脚本执行完成后,打开之前的SPOtemp第一次转换的路径,可以看到,文件的修改日期已经变成了最新,是经过Convert之后的,可以被Sharepoint Online所识别的格式了
![](http://s2.51cto.com/wyfs02/M02/76/EA/wKioL1Zev3Hi_HeVAADpiV7LA4M081.png)
打开创建的第二个文件夹,可以看到里面存在一个转换log,点击进去可看到转换过程中所有的详细步骤
![](http://s5.51cto.com/wyfs02/M00/76/EA/wKioL1Zev4OC7TcWAAKO7KXtRb8864.png)
完成了以上工作后,接下来按照之前所说的流程,我们需要把文件源文件,以及最终转换完成的文件xml元数据,都上传到Azure Blob的容器中,如果您没有Azure账户,可以参考以下链接使用365自带的Import Services进行操作
http://www.learningsharepoint.com/2015/09/22/step-by-step-migrate-files-to-sharepoint-online-office-365-import-service/
首先去Azure Blob里面建立一个新的容器,并复制取得容器name,容器key,也可以使用现有的容器
注:Azure账户可以不与365是同一个账户,只要能够取得存储账户名以及访问密钥即可
![](http://s1.51cto.com/wyfs02/M00/76/EA/wKioL1ZewHjD8fS4AABvXmuvfio212.png)
取得完成后运行如下命令,设置一个azurelocations路径,并且使用加密的方式进行上传,后期在Sharepoint Online运行job的时候需要调用这个locations路径
$azurelocations = Set-SPOMigrationPackageAzureSource -SourceFilesPath "C:\file" -SourcePackagePath "C:\Mig\SPOTEMP" -FileContainerName migration-files -PackageContainerName migration-package -AccountName techdays2016 -AccountKey "jPbyzNkB9321wUiKP4uNy9oluygVCwvQD/"
![](http://s4.51cto.com/wyfs02/M00/76/EB/wKiom1ZewcKBXvwFAAAd8ISeDNQ213.png)
-SourcePackagePath 指向来源文件服务器路径上传到Azure的容器,最终存放到Sharepoint Online的文档库
-SourcePackagePath 指向最终转换完成的路径,最终存放到Sharepoint Online的文档库
-FileContainerName 输入需要在blob中创建的文件容器名称
-PackageContainerName 输入需要在blob中创建的转换package容器名称
-AccountName 输入Azure blob的存储账户名称
-AccountKey 输入Azure blob的存储账户访问密钥
命令执行成功后,会在Azure blob里面看到已经创建的容器
![](http://s4.51cto.com/wyfs02/M02/76/EB/wKiom1ZewTXQdWJgAABFsVBpZTQ922.png)
点击容器进去即可看见已经成功上传的内容
![](http://s1.51cto.com/wyfs02/M01/76/ED/wKioL1Ze5aCwPcCqAABljTdbeuw637.png)
![](http://s3.51cto.com/wyfs02/M01/76/ED/wKiom1Ze5TnDkuvTAABLiAyhXzs171.png)
将文件内容和元数据成功上传至Azure容器后,就可以使用命令publish Sharepoint Online运行迁移的Timejob,执行如下命令
$job = Submit-SPOMigrationJob -TargetWebUrl "https://prowz.sharepoint.com" -MigrationPackageAzureLocations $azurelocations
-TargetWebUrl 为Web应用程序名称
-MigrationPackageAzureLocations 指定之前创建容器时的变量
![](http://s3.51cto.com/wyfs02/M02/76/ED/wKiom1Ze5hayluJ5AABENcvdJv0364.png)
Job开始之后,可以使用Get-SPOMigrationJobStatus命令来查看Job执行的情况,在Sharepoint Online中这些迁移作业都会被做成不同的queue,等空闲的时候再执行这个queue,通常这个等待时间会很短,一般会在一分钟左右。
Get-SPOMigrationJobStatus -TargetWebUrl https://prowz.sharepoint.com
当你看见JobState状态为Queued的时候说明你的这个迁移Job还没有执行,还在排列中,等过一阵子也许你会看到process,说明这个Job正在跑
![](http://s4.51cto.com/wyfs02/M01/76/ED/wKioL1Ze6J_SGfllAACZ-bazibk831.png)
当你隔一段时间再次运行这条命令的时候
Get-SPOMigrationJobStatus -TargetWebUrl https://prowz.sharepoint.com
发现GetSPOMigrationJobStatus Get不到任何东西的时候就说明你的这个Job已经执行完了,在Sharepoint Online的文档库中已经可以看到同步上来的文件,以及文件的修改时间等等详细信息
![](http://s4.51cto.com/wyfs02/M01/76/EE/wKiom1Ze6I_icz2dAAC0kGkRLuc642.png)
![](http://s1.51cto.com/wyfs02/M01/76/E9/wKioL1Zeu0Cz48r8AAC8SttddDA356.png)
总结:本小节中,我带领大家简单了解了一下微软Office 365所提供的Migration API的基本用法,其实这个API不仅仅是可以通过powershell控制,还可以供ISV进行二次开发的接口,支持通过CSOM去call API进行运行,大体来说 Migration API 是提供给广大公司及IT工程师一种新的选择,可以通过这样一种方式,将本地端的 文件服务器或者Sharepoint Server 2013 迁移至云端。Migration API迁移文档时有一个格外需要注意的地方,就是如果Online的文档库中已经存在同样的内容,那么Migration的时候,API只会执行覆盖操作。以上就是本章介绍的内容,下一章中我将带领大家实作如何将本地Sharepoint 2013的文档库迁移至Sharepoint Online的文档库。
安装Migration API的安装先决条件:.NET4.0 下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=17718SharePointOnline Management Shell 下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=35588Migration API也可以安装在Windows7等客户端操作系统,并不一定要安装在Server操作系统Migration API迁移时会用到的命令https://technet.microsoft.com/zh-cn/library/mt143608.aspx
![](http://s1.51cto.com/wyfs02/M00/76/EA/wKiom1ZeuSXiw0xbAABnlpG4ypk062.png)
安装完成Sharepoint Online Mnagement Shell之后,以管理员身份运行
![](http://s2.51cto.com/wyfs02/M01/76/EA/wKiom1ZeuaWBLIwQAABStgsMPVk864.png)
首先,第一步,运行命令 Connect-SPOService -Url https://prowz-admin.sharepoint.com ,连接到Sharepoint Online 管理中心 ,并输入Sharepoint Online管理员账户密码
![](http://s1.51cto.com/wyfs02/M02/76/EA/wKiom1ZeuiLCdSASAADDU9jfPys951.png)
如果身份验证正确后即可进行到下一步操作
![](http://s3.51cto.com/wyfs02/M02/76/E9/wKioL1Zeuu7gZcinAABH1OkO33Y128.png)
本次我们是将一个网络共享里面的内容迁移过去,记录网络共享路径,并确保具备读取权限
![](http://s1.51cto.com/wyfs02/M01/76/E9/wKioL1Zeu0Cz48r8AAC8SttddDA356.png)
准备两个文件夹,一个用于存放Migration API第一次转换的文件,一个用于存放Migration API第二次转换的Log文件
![](http://s3.51cto.com/wyfs02/M01/76/EA/wKiom1Zeu0ng-YeoAACcR2JNwKY931.png)
准备完成后,运行命令 New-SPOMigrationPackage -SourceFilesPath "\\d-dn792-4\File" -OutputPackagePath"c:\mig\spotemp" -TargetWebUrl "https://prowz.sharepoint.com" -TargetDocumentLibraryPath "Shared Documents"
-SourceFilesPath 指向来源文件服务器路径 ,后期这个路径也需要上传到Azure的容器,最终存放到Sharepoint Online的文档库-OutputPackagePath 文件服务器第一次转换为Sharepoint Export所要存放的路径-TargetWebUrl 目标要迁移到的Sharepoint Online网站-TargetDocumentLibraryPath 目标要迁移到的Sharepoint Online文档库
![](http://s5.51cto.com/wyfs02/M02/76/EA/wKioL1ZevVjxNVaPAAAn8mUKwyQ471.png)
![](http://s5.51cto.com/wyfs02/M00/76/EB/wKiom1ZevPHgkw8kAAA_KnvJqLE328.png)
命令执行完成后,打开之前建立的文件夹就可以看到第一次转换的内容
![](http://s2.51cto.com/wyfs02/M00/76/EB/wKiom1ZevTHzAZJVAAEqe27QYUI353.png)
第一次转换完成后,即产生了文件服务器所特定生成的SharePoint Export元数据文件,我们还需要将这种元数据库文件转换为Sharepoint Online所能支持的文件,即进行第二次转换,执行命令
ConvertTo-SPOMigrationTargetedPackage -SourceFilesPath "\\d-dn792-4\File" -SourcePackagePath "C:\mig\spotemp" -OutputPackagePath "C:\mig\spomigpack" -TargetWebUrl "https://prowz.sharepoint.com" -TargetDocumentLibraryPath "Shared Documents"
-SourceFilesPath 指向来源文件服务器路径
-SourcePackagePath 指向第一次转换生成的路径
-OutputPackagePath 指向要生成的转换log路径
-TargetWebUrl 目标要迁移到的Sharepoint Online网站
-TargetDocumentLibraryPath 目标要迁移到的Sharepoint Online文档库
![](http://s2.51cto.com/wyfs02/M00/76/EB/wKiom1Zevs_zTk8gAAA5VXAn6ks745.png)
![](http://s2.51cto.com/wyfs02/M02/76/EA/wKioL1ZevzeB9rdDAAAzzZ6sP6c909.png)
![](http://s2.51cto.com/wyfs02/M01/76/EB/wKiom1ZevtDwitgYAAA8k6eOi3A976.png)
脚本执行完成后,打开之前的SPOtemp第一次转换的路径,可以看到,文件的修改日期已经变成了最新,是经过Convert之后的,可以被Sharepoint Online所识别的格式了
![](http://s2.51cto.com/wyfs02/M02/76/EA/wKioL1Zev3Hi_HeVAADpiV7LA4M081.png)
打开创建的第二个文件夹,可以看到里面存在一个转换log,点击进去可看到转换过程中所有的详细步骤
![](http://s5.51cto.com/wyfs02/M00/76/EA/wKioL1Zev4OC7TcWAAKO7KXtRb8864.png)
完成了以上工作后,接下来按照之前所说的流程,我们需要把文件源文件,以及最终转换完成的文件xml元数据,都上传到Azure Blob的容器中,如果您没有Azure账户,可以参考以下链接使用365自带的Import Services进行操作
http://www.learningsharepoint.com/2015/09/22/step-by-step-migrate-files-to-sharepoint-online-office-365-import-service/
首先去Azure Blob里面建立一个新的容器,并复制取得容器name,容器key,也可以使用现有的容器
注:Azure账户可以不与365是同一个账户,只要能够取得存储账户名以及访问密钥即可
![](http://s1.51cto.com/wyfs02/M00/76/EA/wKioL1ZewHjD8fS4AABvXmuvfio212.png)
取得完成后运行如下命令,设置一个azurelocations路径,并且使用加密的方式进行上传,后期在Sharepoint Online运行job的时候需要调用这个locations路径
$azurelocations = Set-SPOMigrationPackageAzureSource -SourceFilesPath "C:\file" -SourcePackagePath "C:\Mig\SPOTEMP" -FileContainerName migration-files -PackageContainerName migration-package -AccountName techdays2016 -AccountKey "jPbyzNkB9321wUiKP4uNy9oluygVCwvQD/"
![](http://s4.51cto.com/wyfs02/M00/76/EB/wKiom1ZewcKBXvwFAAAd8ISeDNQ213.png)
-SourcePackagePath 指向来源文件服务器路径上传到Azure的容器,最终存放到Sharepoint Online的文档库
-SourcePackagePath 指向最终转换完成的路径,最终存放到Sharepoint Online的文档库
-FileContainerName 输入需要在blob中创建的文件容器名称
-PackageContainerName 输入需要在blob中创建的转换package容器名称
-AccountName 输入Azure blob的存储账户名称
-AccountKey 输入Azure blob的存储账户访问密钥
命令执行成功后,会在Azure blob里面看到已经创建的容器
![](http://s4.51cto.com/wyfs02/M02/76/EB/wKiom1ZewTXQdWJgAABFsVBpZTQ922.png)
点击容器进去即可看见已经成功上传的内容
![](http://s1.51cto.com/wyfs02/M01/76/ED/wKioL1Ze5aCwPcCqAABljTdbeuw637.png)
![](http://s3.51cto.com/wyfs02/M01/76/ED/wKiom1Ze5TnDkuvTAABLiAyhXzs171.png)
将文件内容和元数据成功上传至Azure容器后,就可以使用命令publish Sharepoint Online运行迁移的Timejob,执行如下命令
$job = Submit-SPOMigrationJob -TargetWebUrl "https://prowz.sharepoint.com" -MigrationPackageAzureLocations $azurelocations
-TargetWebUrl 为Web应用程序名称
-MigrationPackageAzureLocations 指定之前创建容器时的变量
![](http://s3.51cto.com/wyfs02/M02/76/ED/wKiom1Ze5hayluJ5AABENcvdJv0364.png)
Job开始之后,可以使用Get-SPOMigrationJobStatus命令来查看Job执行的情况,在Sharepoint Online中这些迁移作业都会被做成不同的queue,等空闲的时候再执行这个queue,通常这个等待时间会很短,一般会在一分钟左右。
Get-SPOMigrationJobStatus -TargetWebUrl https://prowz.sharepoint.com
当你看见JobState状态为Queued的时候说明你的这个迁移Job还没有执行,还在排列中,等过一阵子也许你会看到process,说明这个Job正在跑
![](http://s4.51cto.com/wyfs02/M01/76/ED/wKioL1Ze6J_SGfllAACZ-bazibk831.png)
当你隔一段时间再次运行这条命令的时候
Get-SPOMigrationJobStatus -TargetWebUrl https://prowz.sharepoint.com
发现GetSPOMigrationJobStatus Get不到任何东西的时候就说明你的这个Job已经执行完了,在Sharepoint Online的文档库中已经可以看到同步上来的文件,以及文件的修改时间等等详细信息
![](http://s4.51cto.com/wyfs02/M01/76/EE/wKiom1Ze6I_icz2dAAC0kGkRLuc642.png)
![](http://s1.51cto.com/wyfs02/M01/76/E9/wKioL1Zeu0Cz48r8AAC8SttddDA356.png)
总结:本小节中,我带领大家简单了解了一下微软Office 365所提供的Migration API的基本用法,其实这个API不仅仅是可以通过powershell控制,还可以供ISV进行二次开发的接口,支持通过CSOM去call API进行运行,大体来说 Migration API 是提供给广大公司及IT工程师一种新的选择,可以通过这样一种方式,将本地端的 文件服务器或者Sharepoint Server 2013 迁移至云端。Migration API迁移文档时有一个格外需要注意的地方,就是如果Online的文档库中已经存在同样的内容,那么Migration的时候,API只会执行覆盖操作。以上就是本章介绍的内容,下一章中我将带领大家实作如何将本地Sharepoint 2013的文档库迁移至Sharepoint Online的文档库。
相关文章推荐
- Web移动端调试工具Weinre(2015-12-02 20:53:59)
- 为什么指向的是最后一个节点的下一个节点 http://www.zhihu.com/question/20638791
- 7种最常见的Hadoop和Spark项目
- 将tomcat注册为windows服务
- 本地推送消息
- 自学c语言的第一天(算是吧)
- 逻辑回归、决策树和支持向量机(I)
- [CodeChef FEB14]Graph Challenge解题报告(求半支配点)
- OS开发UI篇—手写控件,frame,center和bounds属性
- LeetCode OJ:Valid Sudoku(有效数独问题)
- Java中yield()和join()在线程中的不同
- git日志 每天导出 shell脚本
- a.setAttribute('width','200px') and a.style.width="200px"
- laravel5.1框架简介及安装
- 抽屉效果的实现(DrawerLayout和SlidingMenu的对比)
- Java中Collection和Map集合总结
- 抽屉效果的实现(DrawerLayout和SlidingMenu的对比)
- 1026. 程序运行时间(15)
- 抽屉效果的实现(DrawerLayout和SlidingMenu的对比)
- CodeForces 412D Giving Awards