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

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

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

我有 1200 多个用户需要这样做(幸运的是,我没有数据限制)。我的时间范围也相当大,所以即使进展缓慢也没关系。

有谁见过这个问题的解决方案?

答案1

在对 Google Drive 进行工作方面的快速浏览后,发现了一个可能的解决方案:(警告:它不是很漂亮。事实上,它相当丑陋,但它可能有效。)

  1. 与管理员或角色帐户共享每个用户的 Google Drive 文件夹。
  2. 在服务器机器上登录该帐户。
  3. 使用批处理脚本中的变量(假设员工在 Windows 系统上具有与 Drive 相同的用户名)让脚本检测文件夹并自动将其放置在正确的驱动器文件夹中。

    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

以下是 Microsoft 有关 robocopy 及其功能和属性的页面:https://technet.microsoft.com/en-us/library/cc733145.aspx

答案2

这是我最后做的

  • 在 Google Apps 中创建服务帐号
  • 设置适用于 Windows 的 Google Drive 同步实用程序
  • 将所有文件和文件夹转移到同一个 Google Drive 帐户
  • 创建 Google 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');     
 }
}

相关内容