Назад | Перейти на главную страницу

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

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

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

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

Вот что я в итоге сделал

  • Создал сервисный аккаунт в Google Apps
  • Установите утилиту Google Drive Sync для Windows
  • Перенес все файлы и папки в одну учетную запись Google Диска.
  • Создан скрипт Google 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 Диска с администратором или ролевой учетной записью.
  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 о robocopy, ее функциях и атрибутах: https://technet.microsoft.com/en-us/library/cc733145.aspx