Миграция из продуктов Microsoft
Актуально для: SimpleTwo 1.0.48, simpletwo-move 0.1.0 · Проверено: 03.11.2026
simpletwo-move — отдельная утилита, которая переносит организацию с Active Directory, Exchange
2016/2019 и Skype for Business на SimpleTwo. Она работает в вашей сети, читает источники только на
чтение и пишет в SimpleTwo вашим собственным токеном администратора — теми же действиями, что
доступны вам в консоли. Ход работы видно в консоли: Пользователи → Миграция.
Сейчас утилита переносит переговорки и оборудование и календарь отдельного сотрудника, заменяя его встречи Skype for Business встречами SimpleTwo. Почта, контакты и учётные записи сотрудников появятся следующими шагами.
1. Что нужно заранее
- Хост в сети заказчика с доступом к контроллеру домена (LDAPS, порт 636, или LDAP 389 с StartTLS) и к SimpleTwo по HTTPS. Подойдёт Windows или Linux (amd64) или macOS (Apple silicon).
- Утилита. Её собирает поставщик:
simpletwo-move-windows-amd64.exe,simpletwo-move-linux-amd64илиsimpletwo-move-macos-arm64(Apple silicon), рядом —Export-RoomPolicies.ps1иplan.example.json. Сборка для macOS не подписана: перед первым запуском снимите с неё отметку загрузки —xattr -d com.apple.quarantine simpletwo-move-macos-arm64 && chmod +x simpletwo-move-macos-arm64. - Учётная запись AD только для чтения, например
svc-move@corp.local. - Токен администратора SimpleTwo — персональный токен доступа (
st_pat_…) из профиля в консоли. Роль администратора должна позволять менять пользователей (users:write). - Домены почты переговорок приняты в SimpleTwo (Почта → Домен и DNS). Иначе адреса переговорок не запишутся, и отчёт скажет об этом.
2. Выгрузка правил бронирования из Exchange
Правила бронирования переговорок хранятся в почтовом ящике, а не в AD, поэтому их выгружают отдельно. В Exchange Management Shell:
.\Export-RoomPolicies.ps1 -Out rooms.json -Equipment
Скрипт только читает (Get-Mailbox, Get-CalendarProcessing, Get-Recipient). Без
-Equipment выгружаются только переговорки.
3. Файл плана
Проще всего заполнить план в окне утилиты. Запустите её без команды — на Windows двойным щелчком
по simpletwo-move-windows-amd64.exe в папке проекта, на Linux и macOS — ./simpletwo-move-… в
терминале из папки проекта —
и она откроет в браузере страницу на этом же компьютере:
- План — форма по всем разделам ниже. Здесь же пароли и токен: они записываются в файлы рядом с планом и обратно не показываются. У каждого раздела есть кнопка проверки: подключение к AD (сколько переговорок нашлось), чтение файла правил бронирования, открытие календаря ящика через EWS, токен в каталоге и консоли SimpleTwo. Номер из Skype for Business можно тут же прогнать через правила преобразования.
- Запуск — пробный прогон, перенос и переключение переговорок, перенос календаря сотрудника; ход, скорость и прогноз окончания видны на странице.
- Отчёты — прогоны со строками отчёта, перечень недостатков SimpleTwo, выгрузка в CSV.
Страница доступна только с этого компьютера, а адрес, который печатает утилита, содержит ключ
окна — не пересылайте его. Окно закрывается вместе с утилитой (Ctrl+C в её консоли). Другой
файл плана: simpletwo-move -plan D:\move\plan.json ui; адрес и порт — -listen, без браузера —
-no-browser.
Утилита не обязана работать на сервере Exchange или на компьютере в домене: нужен только сетевой доступ к AD, EWS и SimpleTwo. Windows нужен лишь для выгрузки правил бронирования (шаг 2).
План можно писать и руками: скопируйте plan.example.json в plan.json рядом с утилитой и
заполните:
| Раздел | Что указать |
|---|---|
project | имя проекта латиницей: под ним ход работы виден в консоли |
ad | адрес контроллера, учётную запись, базу поиска, файл с паролем (password_file) |
exchange.room_policies | файл из шага 2 |
exchange.ews | адрес EWS, сервисную учётную запись, способ доступа к ящикам и файл с паролем — для календарей |
calendar | глубину прошлого в днях и адреса собраний Skype for Business (skype.meet_urls) |
simpletwo | адрес каталога (https://dir.…), адрес консоли и файл с токеном (token_file) |
rooms | переносить ли оборудование; из чего делать логин переговорки: alias, sam или mail |
numbers | номерной план и правила преобразования номеров Skype for Business |
progress | как часто отправлять ход работы в консоль и скорость пилота для прогноза |
Пароль и токен в файл плана не пишутся: они лежат в отдельных файлах, которые план только
называет, или в переменных окружения MOVE_AD_PASSWORD, MOVE_EWS_PASSWORD и MOVE_TOKEN. Опечатка в ключе плана —
ошибка, а не молча пропущенная настройка.
4. Пробный прогон
simpletwo-move -plan plan.json rooms plan
Пробный прогон ничего не записывает. Он читает AD, выгрузку и SimpleTwo и сообщает, что сделал бы
перенос: какие переговорки создаст, что в них запишет и где упрётся. Код выхода 2 значит, что в
отчёте есть конфликты или отказы.
Отчёт последнего прогона:
simpletwo-move -plan plan.json report > rooms-plan.csv
В отчёте каждая строка — объект и поле со статусом:
| Статус | Что значит |
|---|---|
assigned | записано (в пробном прогоне — будет записано) |
kept | в SimpleTwo уже так, как в источнике |
conflict | значение занято другой учётной записью, или его изменили в SimpleTwo после утилиты |
misfit | значение не подходит SimpleTwo, напри мер номер вне плана |
missing | то, на что ссылается объект, ещё не перенесено, например делегат переговорки |
skipped | сознательно не перенесено |
failed | SimpleTwo отказал или не ответил |
У строк, где что-то не перенеслось, есть класс: product — SimpleTwo этого пока не умеет,
data — данные источника неверны, config — не сделана настройка.
5. Конфликты
- Логин занят другой учётной записью. Назовите логин переговорки в плане:
"rooms": {"usernames": {"<objectGUID>": "conf-moscow-3a"}}. objectGUID указан в строке отчёта. - Адрес или номер занят. Переговорка создаётся без него, строка называет, у кого он.
- Изменено в SimpleTwo. Если поле изменили в SimpleTwo после того, как утилита его записала, утилита его не перезаписывает: это конфликт, решать вам.