批量将用户文件从Windows移至Google Apps

我正在寻找从Windows Server到Google云端硬盘大规模迁移用户文件。 每个用户在Windows Server上都有自己的文件夹,我正在寻找一种方法来批量迁移到每个用户的Google云端硬盘。

我有1200+用户这样做(幸运的是我没有数据限制)。 我也有相当长的时间框架,所以如果进展缓慢,这并不重要。

有没有人看到这个解决scheme?

在Google Drive上面做一个简单的工作之后,下面是一个可能的解决scheme:(警告:它不是很漂亮,事实上,它很丑,但可能工作。

  1. 将每个用户的Google云端硬盘文件夹与pipe理员或angular色帐户分享。
  2. login到服务器计算机上的该帐户。
  3. 在批处理脚本中使用variables(假定员工在Windows系统上具有与“驱动器”相同的用户名),脚本会检测该文件夹并将其自动放入正确的驱动器文件夹中。

    FOR %%c in (C:\Users\*.*) DO set FileName=%%c robocopy C:\Users\%FileName% C:\...\GoogleDrive\%FileName% /E /Z /TEE /LOG:migrationLog.log del %FileName% exit 

背后的基本理论发现在这里: http : //learn.googleapps.com/products/drive/set-up-file-share

这里是微软的页面robocopy及其function和属性: https : //technet.microsoft.com/en-us/library/cc733145.aspx

这是我最后做的

  • 在Google Apps中创build了一个服务帐户
  • 设置Google Drive Sync Utility for Windows
  • 将所有文件和文件夹转移到该Google云端硬盘帐户
  • 创buildGoogle Apps脚本以正确分享用户文件夹

这里是我使用的Apps脚本,每个文件夹都有用户的名字:

 function myFunction() { //Top Level Directory that contains each users folder var folder = DriveApp.getFolderById('0ByoBlv24h'); //Get a list of all the folders (also usernames) var folders = folder.getFolders(); //Loop through all the folders while(folders.hasNext()){ var thisFolder = folders.next(); //Get the username and email address var username = thisFolder; var email = username + '@domain.com'; //Add the user as an editor for this folder thisFolder.addEditor(email); //Add a name for the folder thisFolder.setName(username + ' - Google Drive'); } }