Синхронизация папок windows server

Обновлено: 01.07.2024

Админу на заметку - 21. Используем PowerShell для синхронизации каталогов

В арсенале каждого системного администратора со временем накапливаются удобные инструменты, которые значительно облегчают выполнение ряда повседневных задач. Чаще всего это небольшие, но удобные утилиты или скрипты. Мы постоянно знакомим наших читателей с различными инструментами из нашей коллекции и на этот раз речь пойдет о простом, но достаточно функциональном PowerShell-скрипте для односторонней синхронизации каталогов.

Синхронизация каталогов - довольно часто встречающаяся задача, когда необходимо поддерживать соответствие содержимого в нескольких местах. От копирования данная операция выгодно отличается тем, что позволяет передавать только новые или измененные объекты, что позволяет существенно сократить трафик и время выполнения задачи. В Linux системах для этой цели есть мощная и удобная утилита rsync, а в Windows - robocopy, которые давно зарекомендовали себя и широко используются системными администраторами.

Но не так давно мы нашли один интересный PowerShell-скрипт который может послужить удобной заменой robocopy для простых задач автоматизации. Скрипт написан энтузиастом и выложен на сайте автора. Также архив со скриптом можно скачать по прямой ссылке:

Внутри находится собственно скрипт Sync-Folder.ps1, который следует разместить в любом удобном месте.

Что интересного может предложить нам этот скрипт? На наш взгляд, основное его достоинство - это поддержка конфигурационных файлов в формате XML, в которых мы можем описать сразу несколько заданий с параметрами, которые будут выполнены последовательно. Кстати, robocopy тоже позволяет создавать файлы заданий, но один файл может содержать только одно задание и предназначен прежде всего для того, чтобы каждый раз не вводить все опции.

Давайте распакуем наш скрипт в произвольную папку, скажем C:\ADM и разместим там же файл конфигурации MySyncJob.xml. Будучи запущен без параметров скрипт ищет рядом с собой файл Sync-FolderConfiguration.xml и выполняет записанное в нем задание, это может быть удобно, но на наш взгляд удобнее давать конфигурационным файлам осмысленные наименования, что облегчит в последующем поиск нужных заданий, а также убережет от возможного нежелательного выполнения задания в случае случайного запуска скрипта. Все свои действия скрипт записывает в файл лога, который располагается в своей рабочей директории.

powershell-synchronizing-001.jpg

Откроем блокнотом XML-файл и внесем в него следующее содержимое (пример взят с сайта автора скрипта):

Начинается файл конфигурации с тега <Configuration>, который следует обязательно закрыть в конце. Задания синхронизации находятся внутри тегов <SyncPair>, обязательными являются два тега <Source> - путь к источнику данных и <Target> - место назначения. Можно указывать как локальные, так и сетевые расположения.

Тег <Filter> позволяет задать некоторую маску для копирования, например, только txt-файлы. Обратите внимание, что это именно маска, а не перечень расширений и т.п. Допускается использование подстановочных выражений, но фильтр может быть только один. Например, такая конструкция работать не будет, хотя ошибкой не является:

Использование в пределах одного задания двух тегов <Filter> приведет к синтаксической ошибке, поэтому если вам нужно копировать только файлы двух типов, скажем PNG и JPG, то следует создать два задания с одинаковыми параметрами, но разными фильтрами.

Заданное без подстановочных знаков выражение будет восприниматься буквально. Если вы хотите синхронизировать все файлы, содержащие в имени строку old, то следует указать:

отберет все файлы, которые начинаются с old, т.е. файл oldfile.txt будет скопирован, а fileold.txt - нет, в то время как с предыдущим фильтром были бы скопированы оба.

Кроме фильтра можно задавать исключения, которых может быть много и для их описания используется тег <ExceptionList>, внутри которого располагается список исключений, каждое из которых оформляется тегами <Exception>. В приведенном примере будут пропущены все файлы txt имеющие в имени строку p234.

После того, как файл конфигурации создан самое время проверить его в деле, запустим консоль PowerShell и запустим наш скрипт, указав ему пусть к конфигурационному файлу:

По результатам работы скрипта вы получите короткий отчет, более подробную информацию можно почерпнуть из лога, который очень хорошо читается и предоставляет исчерпывающую информацию, откуда и куда копируем, какой фильтр, какие исключения и какие именно действия были предприняты.

powershell-synchronizing-002.jpg

Если вы отлаживаете сложный сценарий, то столь подробный лог окажется очень к месту, также можно включить интерактивный вывод результатов в консоль, используя ключ -Verbose:

powershell-synchronizing-003.jpg

Если необходимо вызывать скрипт из командной строки или пакетного файла, то следует использовать следующую конструкцию:

В целях безопасности PowerShell-скрипты могут исполняться только интерактивно, т.е. сначала нужно запустить оболочку PowerShell, а затем в ней вызвать скрипт. В нашем случае сначала запускается оболочка, которой передается нужная команда на исполнение скрипта, аналогичная тому, как это было бы сделано интерактивно.

Существует также другой метод, когда файл скрипта передается оболочке в качестве аргумента, он достаточно широко распространен в различных материалах в сети, но не является рекомендуемым, так как в этом случае некоторые механизмы скриптов могут работать некорректно. В нашем случае будет неправильно определена автоматическая переменная

В итоге скрипт попытается записать файл лога не рядом с собой, а в корень диска C:, что обычно запрещено политиками безопасности и приведет к ошибке.

powershell-synchronizing-004.jpg

Чтобы добавить наш скрипт в планировщик заданий следует поступить аналогичным образом, создадим новую задачу, установим условия ее выполнения и на закладке Действия в качестве действия выберем Запуск программы, в поле Программа или сценарий укажем

а в поле Добавить аргументы внесем команду на исполнение скрипта, также как мы это делали в командной строке:

powershell-synchronizing-005.jpg

Как видим, данный скрипт не делает ничего такого, что не умела бы robocopy, но благодаря возможности использовать конфигурационные файлы позволяет упростить многие задачи по синхронизации данных. В один конфигурационный файл можно добавить нужное число заданий, а простой и структурированный синтаксис позволяет легко читать данные файлы. Добавьте к этому подробные и понятные логи.

Кроме того, использование для автоматизации PowerShell скриптов гораздо более безопасно, чем пакетных файлов, так как это исключает возможность ошибочного или случайного запуска просто по двойному клику.

Надеемся, что данный материал окажется вам полезен и указанный скрипт займет достойное место в применяемых вами инструментах.

date

20.01.2014

directory

Windows Server 2012 R2

comments

комментариев 35

Нередка ситуация, когда работник для работы с корпоративными данными используется больше чем два устройства (например, ноутбук и планшет). В этой ситуации, чтобы пользователи всегда работали с актуальными версиями своих данных, перед ИТ-службой встает задача синхронизации файлов. Для этих целей можно воспользоваться SkyDrive, DropBox или походим сервисом. Однако не всегда возможно хранить данные в «облаке», хотя бы из соображений конфиденциальности и безопасности. Новая функция Windows Server 2012 R2 Work Folders (или «Рабочие папки») – позволяет пользователям синхронизировать свои личные файлы в корпоративной сети с любыми своими устройствами. По сути, Work Folders является аналогом Dropbox для корпоративных пользователей.

Благодаря «Рабочим папкам» на платформе Windows Server 2012 R2 возможно организовать функциональный и безопасный сервис репликации файлов пользователей между несколькими устройствами. Work Folders на базе файлового сервера позволяет организовать «корпоративный SkyDrive. Помимо всего прочего, к пользовательским данным на корпоративном файловом сервере можно применять такие политики, как квотирование (Quota), блокировка запрещенных типов файлов (File Screening), а также динамический контроль доступа (Dynamic Access Control) и т.д., т.е. полный комплекс мер по обеспечению защиты информации.

Как и Dropbox, Work Folders позволяет хранить копии файлов на стороне сервера и клиента, и при каждом подключении клиента к серверу выполняется синхронизация данных. Благодаря данной функции пользователь может синхронизировать свои рабочие папки со своим мобильным устройством (ноутбуком, планшетом и т.д.) и осуществлять редактирование документов, даже без подключения к корпоративной сети (offline). При следующем соединении с корпоративной сетью клиент Work Folders осуществит синхронизацию изменений.

На данный момент технологию Work Folders поддерживают только устройства под управлением Windows 8.1, в которую клиент Work Folders уже встроен. В ближайшем будущем будет добавлена поддержка популярных мобильных устройств: девайсов на Windows 7, Windows 8, Android, а также iOS.

Служба синхронизации Work Folder должна работать на Windows 2012 R2 с установленной ролью файлового сервера. Work Folder также возможно интегрировать со службой Active Directory Rights Management Services, позволяющей обеспечить защиту пользовательских данных.

Настройка Work Folder на Windows Server 2012 R2

Функционал Work Folders в Windows Server 2012 R2 входит в состав роли File and Storage Services и включить его можно с помощью консоли Server Manager или PowerShell.

При установке функционала Work Folders также будет установлен сервер IIS Web Core, являющийся обязательным компонентом технологии и необходимый для обслуживания клиентов.

 Установка роли work folder в windows server 2012 r2

После установки функции, нужно открыть консоль Server Manager ->File Server -> Work Folders и указать каталог, в котором будут храниться «Рабочие папки» пользователей.

Путь к каталогу с рабочими папками

Следующий шаг – выбор структуры папок. Имена подпапкок (каталоги конечных пользователей сервиса) могут содержать только имена пользователей (псевдонимы) или их полные email адреса.

Структура папок Work Folders

Затем нужно указать список пользователей и групп, имеющих доступ к данной папке. Если нужно, чтобы у администратора сервера не было доступа к данным пользователей, отметьте флажок «Disable inherited permissions and grant users exclusive access to their files».

Права доступа к Work Folder в Windows Server 2008 R2

Далее необходимо указать будут ли на клиентских устройствах применяться политики защиты данных, такие как шифрование (на клиенте Windows 8.1 используется EFS) и защита данных паролем.

Политики защиты данных work folder в windows server 2012 r2

Сертификат для Work Folder

Данный сертификат необходимо выбрать в качестве SSLсертификата на сайте IIS.

ssl сертификат на iis для work folders

Настройка Work Folder на клиенте

Следующий этап – настройка клиента Work Folder на пользовательском девайсе. Отметим, что для работы «Рабочих папок», клиент не обязательно должен состоять в тот же домене Windows, что и сервер Work Folder.

Примечание. Напомним, что на момент выхода статьи, клиент Work Folder доступен только для Windows 8.1.
  1. Откройте панель управления и запустите апплет Work Folders.
  2. Система предложит указать email адрес пользователя (требует корректной настройки DNS зоны домена), или Url сервера с ролью Work Folders.
  3. Т.к. политка на сервере Work Folders требует защиты данных с помощью шифрования и пароля, необходимо подтвердить, что вы согласны применить эти политики на своем устройстве.
  4. После этого в панели управления появится информация о «Рабочих папках» (объем доступного пространства на сервер, время последней синхронизации, ошибки и т.д.).
  5. Содержимое «Рабочих папок» доступно их проводника Windows или любого файлового менеджера (по умолчанию Work Folders хранятся в каталоге c:\users\username\WorkFolders).
  6. Если скопировать или переместить в данную папку любой файл, то после следующей синхронизации, он будет скопирован на корпоративный файловый сервер и будет доступен пользователю на других мобильных и стационарных устройствах пользователя с настроенными Рабочими папками.
Примечание. К сожалению, нам не получилось обнаружить в проводнике никакой визуальной информации о статусе синхронизации, так что понять был синхронизирован конкретный каталог или нет невозможно…

Настройка Work Folder с помощью групповой политики

Групповые политики настройки work folders

Настроить Work Folder на клиентах возможно также с помощью групповой политик. Это удобно в случае необходимости массовой использования данной технологии на ПК домена. Интересующая нас политика находится в разделе Users Configurations-> Policies > Administrative Templates > Windows Components > Work Folders и называется Specify Work Folders settings. Чтобы задать сервер «Рабочих папок», активируйте эту политику и укажите URL путь к серверу.

Чтобы клиенты настраивали оставшиеся параметры Work Folders автоматически, также активируйте политику Force automatic setup for all users (раздел GPO: Computer Configurations> Policies > Administrative Templates > Windows Components > Work Folders.

Примечание. Информация в этой статье основана на доступных на данный момент Windows 8.1 Preview and Windows Server 2012 R2 Preview, в дальнейшем она будет обновлена на основании изменений в RTM версиях.

Функционал Work Folder разработан Microsoft в рамках общего ИТ тренда под названием BYOD (Bring Your Own Device), в концепции которого пользователи могут использоваться свои личные мобильные устройства для прозрачного и безопасного доступа к корпоративным ресурсам. Одно из главных преимуществ концепции BYOD для копаний – отсутствие необходимости обеспечения сотрудников устройствами доступа (ноутбуки, телефоны, планшетные компьютеры), все, что нужно от компании – предоставить пользователям удобные службы удаленного подключений к корпоративной сети и сервисы предоставления корпоративных ресурсов.

В организации стоит задача автоматизировать получение новых файлов (к примеру обновлений по определенному спектру программ) на съемные носители.
Первоначально все делалось так:
1. Ответственный сотрудник находит и скачивает обновления с сайтов.
2. Затем он бегает, как ошпаренный, по сотрудникам-консультантам и КАЖДОМУ закачивает на флеш-накопитель свеженькие обновления. естественно затирая старые.
3. Потом приходит и составляет отчет по проделанной работе.

Теперь задумались над упрощением этого процесса. Т.к. в офисе ценят время. Сам по себе офис представляет пару комнат, с настольными станциями в виде PC (есть и терминалы). Все станции подключены к сети с сервером. На сервере стоит ось Windows Server 2008 R2. Станции так же подключены разными методами. На некоторых стоит Windows 7 с настроенным доменом. А терминалы естественно запускаются как RDP.

Так с полем боя ознакомились теперь суть.
Необходимо автоматизировать пункт 2. Т.е. организовать синхронизацию данных по сети этих самых обновлений. В моем представлении это должно выглядеть примерно так:
1. Ответственный за обновления сотрудник находит и скачивает их с сайтов.
2. Затем он заливает в какой то определенный каталог на сервере (пусть ет будет X) эти обновления.
3. Далее приходит сотрудник-консультант и вставляет в USB порт свой флеш-накопитель.
4. На сервере, при этом, запускается скрипт синхронизации. И далее сравниваются файлы на сервере и на флеш-накопителе (что бы не нагружать сеть, то можно все привязать к каким то папкам с одинаковым названием). К примеру папка на сервере "обновления" и на флешке тоже папка "обновления" он сканирует только ее.
5. Если файлы сервера отличаются от файлов флеш-накопителя, то происходит докачка этих отличающихся файлов с сервера на флеш-накопитель.
6. Затем счастливый сотрудник-консультант вынимает флешку и уходит. Все довольны и счастливы.

Примечание:
- Каталог на сервере и на флешке будет фиксированным. его местоположение и наименование не будет изменяться.
- Использование каких либо сторонних программ запрещено! Только средствами ОС Windows server 2008 R2.

Буду очень признателен за содействие и помощь. Спасибо что уделили время)

В этом разделе рассматриваются технологии автономных файлов (кэширование на стороне клиента, или CSC), перемещаемых профилей пользователей (также известных как RUP) и перенаправления папок, в том числе новые возможности и поиск дополнительных сведений.

Описание технологий

Технологии автономных файлов и перенаправления папок при совместном использовании позволяют перенаправлять путь к локальным папкам (например, к папке документов) в какое-либо место в сети. При этом для увеличения скорости и улучшения доступности кэширование содержимого производится локально. Технология перемещаемых профилей пользователей позволяет перенаправлять профиль пользователя в какое-либо место в сети. Эти возможности раньше назывались IntelliMirror.

Практическое применение

С помощью технологий автономных файлов, перемещаемых профилей пользователей и перенаправления папок администраторы могут организовывать централизованное хранение данных и настроек пользователей, а также обеспечивать возможность доступа к данным при автономной работе, отказе сети или сервера. Некоторые частные случаи применения:

  • централизация данных с клиентских компьютеров для решения задач администрирования, например использование расположенного на сервере средства архивации для сохранения папок и настроек пользователей;
  • обеспечение пользователям непрерывного доступа к сетевым файлам даже при отказе сети или сервера;
  • оптимизация использования пропускной способности сети и повышение удобства работы пользователей в филиалах с файлами и папками, размещенными на автономных серверах организации;
  • обеспечение пользователям мобильных устройств доступа к сетевым файлам при автономной работе или медленном сетевом подключении.

Новые и измененные функции

В следующей таблице описаны некоторые основные изменения в технологиях автономных файлов, перемещаемых профилей пользователей и перенаправления папок, реализованные в данной версии.

Компонент или функция Новый или обновленный компонент Описание
Постоянный автономный режим Создать Обеспечивает более быстрый доступ к файлам и снижает уровень использования пропускной способности за счет постоянной автономной работы даже при высокоскоростном сетевом подключении.
Экономная синхронизация Создать Позволяет сократить стоимость синхронизации данных при использовании лимитных подключений или перемещении в сеть стороннего поставщика.
Поддержка основного компьютера Создать Позволяет применять технологии перемещаемого профиля и перенаправления папок (совместно или раздельно) только на основных компьютерах пользователей.

Постоянный автономный режим

Начиная с Windows 8 и Windows Server 2012, администраторы могут настроить систему так, чтобы работающие с автономными файлами пользователи всегда находились в автономном режиме, даже если они располагают высокоскоростным сетевым подключением. Windows по умолчанию обновляет автономные файлы в кэше посредством почасовой фоновой синхронизации.

Какую пользу дает постоянный автономный режим?

Постоянный автономный режим дает следующие преимущества:

  • пользователи получают более быстрый доступ к файлам, расположенным в перенаправленных папках, например в папке документов;
  • снижается уровень использования пропускной способности, за счет чего сокращаются расходы на дорогостоящие подключения к глобальной сети или лимитные подключения, например к мобильной сети 4G.

Как изменяет ситуацию постоянный автономный режим?

До появления ОС Windows 8 и Windows Server 2012 переход между сетевым и автономным режимами осуществлялся в зависимости от доступности и условий сети даже при включении режима медленного подключения с пороговым значением задержки в 1 миллисекунду.

При использовании постоянного автономного режима компьютеры никогда не переходят в сетевой режим, если установлен параметр групповой политики Настроить режим медленного подключения, а параметру Задержка присвоено пороговое значение 1 миллисекунда. По умолчанию фоновая синхронизация производится каждые 120 минут, но ее можно настроить с помощью параметра групповой политики Configure Background Sync .

Экономная синхронизация

При экономной синхронизации Windows отключает фоновую синхронизацию, когда пользователь, выбравший сеть с лимитным тарифным планом (например, мобильную сеть 4G), достиг или почти достиг предела пропускной способности, либо в сеть стороннего поставщика.

Как правило, в ОС Windows 8, Windows Server 2019, Windows Server 2016 и Windows Server 2012 для лимитных сетевых подключений автономный режим (режим медленного подключения) включается при увеличении задержки кругового пути до 35 миллисекунд. Поэтому данные подключения переводятся в автономный режим (режим медленного подключения) автоматически.

Какую пользу приносит экономная синхронизация?

Экономная синхронизация помогает пользователям сократить стоимость использования данных при лимитных подключениях или перемещении в сеть стороннего поставщика.

Как изменяет ситуацию экономная синхронизация?

До появления Windows 8 и Windows Server 2012 пользователям, желавшим сократить расходы при работе с автономными файлами на лимитных сетевых подключениях, приходилось отслеживать использование данных с помощью средств, предлагаемых поставщиком мобильной связи. Затем при приближении к пределу пропускной способности или его превышении можно было переключиться на автономный режим вручную.

При использовании экономной синхронизации Windows автоматически отслеживает пределы перемещения и использования пропускной способности на лимитных подключениях. Когда пользователь перемещается, приближается к пределу пропускной способности или превышает его, Windows переключается в автономный режим и препятствует любой синхронизации. Тем не менее синхронизация по-прежнему запускается вручную, а администраторы могут переопределить экономную синхронизацию для конкретных пользователей, например руководителей организации.

Основные компьютеры для перемещаемых профилей пользователей и перенаправления папок

Теперь вы можете для каждого пользователя домена назначить набор компьютеров, которые называются основными, что позволяет контролировать использование технологий перемещаемого профиля и (или) перенаправления папок. Назначение основных компьютеров — простой и эффективный способ сопоставления данных и настроек пользователя с конкретными компьютерами или устройствами. Это упрощает контроль со стороны администратора, повышает безопасность данных и позволяет защитить профили пользователей от повреждения.

Какую пользу приносят основные компьютеры?

Назначение основных компьютеров для пользователей дает четыре ключевых преимущества.

  • Администратор указывает, на каких компьютерах пользователи могут получить доступ к своим перенаправленным данным и настройкам. Так, он может разрешить перемещение данных и настроек пользователя между настольным компьютером и ноутбуком, а также запретить их перемещение на любой другой компьютер, например расположенный в конференц-зале.
  • Назначение основных компьютеров снижает риск нарушения безопасности и конфиденциальности, когда на компьютере, за которым работал пользователь, остаются личные или корпоративные данные. Это полезно, например, когда генеральный директор временно использует компьютер какого-либо сотрудника, чтобы после его работы на компьютере не осталось конфиденциальных или корпоративных данных.
  • Назначение основных компьютеров позволяет администратору снизить риск неверной настройки или повреждения профиля, что может быть следствием перемещения данных между системами разной конфигурации, например 32- и 64-разрядной.
  • При первом входе на неосновной компьютер, например сервер, потребуется меньше времени, так как перемещаемый профиль пользователя и (или) перенаправленные папки не скачиваются. Время выхода из системы тоже сокращается, поскольку отсутствует необходимость в передаче изменений профиля пользователя на файловый ресурс общего доступа.

Как изменяют ситуацию основные компьютеры?

Чтобы ограничить загрузку личных данных пользователей на основные компьютеры, с помощью технологий перемещаемых профилей и перенаправления папок производятся следующие проверки логики при входе:

  1. Операционная система Windows проверяет новые параметры групповой политики (Загружать перемещаемые профили только на основные компьютеры и Перенаправлять папки только на основных компьютерах), чтобы определить, будет ли атрибут msDS-Primary-Computer в доменных службах Active Directory (AD DS) влиять на принятие решения о перемещении профиля пользователя или перенаправлении папок.
  2. Если этот параметр политики обеспечивает поддержку основных компьютеров, Windows проверяет наличие в схеме доменных служб Active Directory поддержки атрибута msDS-Primary-Computer . Если она есть, Windows проверяет, назначен ли компьютер, на который заходит пользователь, для него основным:
    1. если компьютер является одним из основных для этого пользователя, в Windows к нему применятся параметры перемещаемых профилей пользователей и перенаправления папок;
    2. в противном случае Windows загрузит кэшированный локальный профиль пользователя (при наличии) или создаст новый. Кроме того, Windows удалит все существующие перенаправленные папки в порядке, который указан в ранее примененном параметре групповой политики, сохраненном в локальной конфигурации перенаправления папок.

    Требования к оборудованию

    Технологии автономных файлов, перемещаемых профилей пользователей и перенаправления папок реализуются на компьютерах под управлением 32- или 64-разрядной операционной системы и не поддерживаются на компьютерах под управлением Windows на ARM (WOA).

    Требования к программному обеспечению

    Для назначения основных компьютеров среда должна соответствовать следующим требованиям.

    Читайте также: