Каталог сообщений синхронизации для windows

Обновлено: 08.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 скриптов гораздо более безопасно, чем пакетных файлов, так как это исключает возможность ошибочного или случайного запуска просто по двойному клику.

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

Админу на заметку - 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 скриптов гораздо более безопасно, чем пакетных файлов, так как это исключает возможность ошибочного или случайного запуска просто по двойному клику.

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

Вы можете синхронизировать данные Outlook с мобильными устройствами и с другими приложениями. Outlook также регулярно синхронизируется с учетными записями учетная запись Microsoft Exchange и учетными записями электронной почты. Ниже подробно описано, как Outlook синхронизирует данные.

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

Учетная запись электронной почты IMAP (например, Google)

Учетная запись электронной почты POP (например, Yahoo)

Учетные записи Microsoft Exchange

В следующей таблице перечислены элементы Outlook, которые синхронизируются либо не синхронизируются с сервером Exchange Server.

Элемент Outlook

Сервер Exchange Server

Если вы используете учетная запись Microsoft Exchange, которой управляет Microsoft Exchange Server 2010 или более поздней версии, вы можете создавать и изменять в Outlook для Mac правила, которые сохраняются на сервере Exchange Server. Невозможно просматривать и редактировать правила, которые настроены на выполнение только в Outlook для Windows.

Все контакты учетной записи Exchange и папки контактов в Outlook постоянно автоматически синхронизируются с сервером Exchange Server.

Однако группы контактов и списки рассылки, сохраненные в Outlook для Mac, не сохраняются на сервере Exchange Server. Созданные группы сохраняются на компьютере и доступны только в Outlook для Mac. То же применимо для групп контактов, сохраненных на сервере Exchange Server.

Все календари учетной записи Exchange и события в Outlook постоянно автоматически синхронизируются с сервером Exchange Server.

Заметки и папки заметок синхронизируются с сервером Exchange Server.

Задачи и папки задач синхронизируются с сервером Exchange Server.

Отметки "К исполнению"

Сведения о категориях, примененных к элементам в Outlook, синхронизируются с сервером Exchange Server. Тем не менее цвета, связанные с категориями, могут различаться в Outlook для Mac и Outlook для Windows.

Ваши сведения также доступны всем другим приложениям, которые можно использовать для подключения к серверу Exchange Server, таким как Outlook для Windows. Если вы используете как Outlook для Mac, так и Outlook для Windows для доступа к одной и той же учетной записи Microsoft Exchange, следует учитывать некоторые различия в представлении данных в этих приложениях:

Различия между Outlook для Mac и Outlook для Windows

Адреса электронной почты контактов

В Outlook для Mac можно хранить до 13 адресов электронной почты одного контакта. В Outlook для Windows можно хранить до трех адресов электронной почты. При синхронизации контактов Outlook для Mac синхронизирует адрес электронной почты по умолчанию с полем адрес электронной почты в Outlook для Windows. Следующие два адреса в списке контактов Outlook для Mac синхронизируются с полями электронной почты 2 и электронной почты 3 в Outlook для Windows.

Почтовые адреса контактов

Некоторые поля, например "Отчество", доступны в Outlook для Mac, но не в Outlook для Windows. Поэтому данные, введенные в поле "Отчество", невозможно просмотреть в Outlook для Windows. Аналогично этому в Outlook для Windows есть поля для контактов, которые отсутствуют в Outlook для Mac.

Чтобы обойти эту проблему, можно ввести данные на вкладке Заметки в Outlook для Mac, чтобы они отображались в поле Заметки в Outlook для Windows.

Учетные записи электронной почты IMAP

Если вы хотите синхронизировать свою электронную почту IMAP, сначала добавьте учетную запись в Outlook. Дополнительные сведения о том, как добавить учетную запись, можно найти в разделе Добавление учетной записи электронной почты в Outlook для Mac.

С помощью IMAP IDLE и расписаний можно делать следующее:

Использование

Поддержание подключения к IMAP-серверу для одной папки.

Удаление нежелательной почты в заданное время.

Дополнительные сведения о режиме IMAP IDLE см. в статье Параметры сервера для учетной записи IMAP.

Учетные записи электронной почты POP

Если вы хотите синхронизировать свою электронную почту POP, сначала добавьте учетную запись в Outlook. Дополнительные сведения о том, как добавить учетную запись, можно найти в разделе Добавление учетной записи электронной почты в Outlook для Mac.

С помощью расписаний и параметров сервера можно делать следующее:

Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).

Задача: требуется настроить обмен данными через файл из 1С: Управление торговлей 11 (далее УТ) в 1С: Бухгалтерия 3.0 (далее Бухгалтерия).

  • платформа 1С: Предприятие 8.3 (8.3.13.1690),
  • конфигурация Управление торговлей, редакция 11 (11.4.7.150),
  • конфигурация Бухгалтерия предприятия (базовая), редакция 3.0 (3.0.72.72)
  • режим Файловый (без сжатия).
  • настроить параметры подключения,
  • настроить правила отправки и получения данных,
  • выполнить начальную выгрузку данных.
  • настроить правила отправки и получения данных,
  • выполнить сопоставление и загрузку данных,
  • выполнить начальную выгрузку данных.

ШАГ 1. Настройка в УТ

Переходим в раздел «НСИ и администрирование» и выбираем пункт «Синхронизация данных». Обязательно должен быть указан префикс информационной базы. В нашем случае это «ЦБ».


Устанавливаем флаг «Синхронизация данных» и переходим по ссылке «Настройки синхронизации данных». Нажимаем кнопку «Новая синхронизация данных». В открывшемся окне выбираем конфигурацию, с которой будем настраивать обмен. В нашем случае это «Бухгалтерия предприятия, редакция 3.0».


Откроется окно настройки синхронизации. Выберем пункт «Настроить параметры подключения».


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


Далее укажем каталог и настроим архивацию файлов.


Далее укажем префикс базы бухгалтерии и название файла с настройками синхронизации.


Обратите внимание: если указать префикс, по которому уже есть обмен, то будет ошибка, программа предложит указать уникальный код. Нажимаем «Далее» и на этом заканчивается первый шаг настройки.


В результате у нас появится два файла в указанной папке: файл с данными (Message_ЦБ_БП.zip) и файл с настройками обмена (Синхронизация данных через универсальный формат.xml). Обратите внимание: если в УТ попробовать перейти к этапу «Настроить правила отправки и получения данных», то будет ошибка.


ШАГ 2. Настройка в Бухгалтерии

Перед настройкой синхронизации в Бухгалтерии нам понадобятся два файла, созданных на предыдущем шаге. Разместим файлы Message_ЦБ_БП.zip и Синхронизация данных через универсальный формат.xml в любую папку на компьютере с базой Бухгалтерии. Внимание: если Бухгалтерия находится на одном компьютере с УТ, то ничего переносить не нужно. Будем использовать ту же папку, что и для УТ.

Сначала перейдем в раздел «Администрирование» и выберем пункт «Синхронизация данных». В открывшемся окне проверим, чтобы префикс указанной базы совпадал с префиксом, который мы указали на первом шаге.


Устанавливаем флаг «Синхронизация данных» и переходим по ссылке «Настройки синхронизации данных». Нажимаем кнопку «Новая синхронизация данных». В открывшемся окне выбираем конфигурацию, с которой будет настроен обмен. В нашем случае это «1С: Управление торговлей, редакция 11».


Откроется окно настройки синхронизации. Выберем пункт «Настроить параметры подключения».


Так как обмен настраиваем через файл, то выбираем пункт «синхронизация данных через файл, без подключения к другой программе». На Шаге 1 мы уже создали файл с настройками обмена Синхронизация данных через универсальный формат.xml, поэтому выберем его. Если был создан другой каталог и туда скопировали файл с настройками обмена, то выбираем его.


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


Далее проверяем настройки префиксов и на этом настройка параметров подключения в Бухгалтерии завершена.



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


Так как задачи выгрузки из Бухгалтерии у нас нет, то в настройках отправки данных укажем «не отправлять».


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


Нажимаем «Записать и закрыть». Далее переходим к следующему этапу «Выполнить начальную выгрузку данных».


После выполнения операции будет создан в каталоге обмена файл с данными Message_БП_ЦБ.zip. На этом этап настройка обмена в Бухгалтерии закончена.


ШАГ 3. Окончание настройки в УТ

Вернемся в УТ. Если использовался другой каталог, то в папку обмена УТ перенесем файл, созданный на прошлом шаге Message_БП_ЦБ.zip.

Продолжим настройку синхронизации в УТ с этапа «Настроить правила отправки и получения данных».


В настройках обратим внимание на два поля.

1.Отправлять только используемую в документах нормативно-справочную информацию.

2.Отправлять все, начиная с даты. Это поле полезно, так как бывает, что нужно начать синхронизацию с определенного времени. Например, учет в УТ уже был настроен ранее, а в
Бухгалтерии только начинаем вести учет. Тогда нет необходимости переносить все документы из УТ в Бухгалтерию. Или второй случай: нужно поменять настройки обмена, но чтобы они действовали только для документов с определенной даты.


Все остальные поля заполняем в зависимости от учета.

В нашем случае настройка получения данных не требуется. Оставляем ее без изменений.


Нажимаем «Записать и закрыть». Переходим к следующему этапу «Выполнить сопоставление и загрузку данных».


В нашем случае программа ничего загружать не будет и перейдет к следующему этапу.


На последнем этапе «Выполнить начальную выгрузку данных» программа выгрузит данные из УТ в файл Message_ЦБ_БП.zip.



Обратите внимание (для случая с двумя каталогами): полученный файл Message_ЦБ_БП.zip копируем в каталог обмена Бухгалтерии. В Бухгалтерии выполняем синхронизацию. При этом Бухгалтерия сначала загрузит данные из присланного файла Message_ЦБ_БП.zip, потом обновит свой файл выгрузки Message_БП_ЦБ.zip Этот файл выгрузки Message_БП_ЦБ.zip нужно скопировать обратно в каталог обмена УТ и в УТ выполнить синхронизацию. При этом УТ сначала загрузит данные (если они там есть) из файла Message _БП_ЦБ.zip, а потом обновит свой файл выгрузки Message _ЦБ_БП.zip и т.д.

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