Массовое перемещение пользовательских файлов в Google Apps из Windows

Я хочу сделать массовую миграцию пользовательских файлов с Windows Server на Google Drive. У каждого пользователя есть своя папка на Windows Server, и я ищу способ массовой миграции на каждый пользователь Google Drive.

Для этого у меня более 1200 пользователей (к счастью для меня нет ограничений на данные). У меня также есть довольно большой период времени, поэтому, если он пойдет медленно, это не будет иметь значения.

Кто-нибудь видел решение для этого?

2 ответа

Вот что я сделал в конце

  • Создан сервисный аккаунт в Google Apps
  • Настройте Google Drive Sync Utility для Windows
  • Перенес все файлы и папки в эту учетную запись 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');     
 }
}

После того, как вы быстро покопаетесь в Google Диске для работы, вот возможное решение: (ВНИМАНИЕ: это не очень красиво. На самом деле, это довольно уродливо, но это может сработать.)

  1. Совместно используйте папку Google Drive для каждого пользователя с учетной записью администратора или роли.
  2. Войдите в эту учетную запись на сервере.
  3. Используя переменную в пакетном сценарии (при условии, что сотрудники имеют то же имя пользователя в системе 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

Вот страница Microsoft по робокопии, ее функциям и атрибутам: https://technet.microsoft.com/en-us/library/cc733145.aspx

Другие вопросы по тегам