Как мигрировать переговорные комнаты из Exchange
Шаг 1. Выгрузите переговорные комнаты из Exchange
- Подключитесь к машине с Exchange.
- Создайте скрипт с расширением ps1:
export_confrooms.ps1
. -
В файл
export_confrooms.ps1
вставьте следующий код:$confroomMailboxes = Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails RoomMailbox $confroomLists = Get-DistributionGroup -ResultSize Unlimited -Filter {RecipientTypeDetails -eq "RoomList"} $equipmentMailboxes = Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails EquipmentMailbox $resources = @() foreach ($confroom in $confroomMailboxes) { $adUser = Get-ADUser -Identity $confroom.Guid -Properties info, co, Country, State, City, StreetAddress, PostalCode, Office $confroomDetails = [PSCustomObject]@{ "ResourceType" = "Confroom" "GUID" = $confroom.Guid "Name" = $confroom.DisplayName "Enabled" = $confroom.IsMailboxEnabled "Capacity" = $confroom.ResourceCapacity "Comment" = $adUser.info "Country" = $adUser.co "State" = $adUser.State "City" = $adUser.City "Street" = $adUser.StreetAddress "Postal_code" = $adUser.PostalCode "Office" = $adUser.Office "Location_GUID" = $emptyVar "Location_name" = $emptyVar } foreach ($list in $confroomLists) { $members = Get-DistributionGroupMember -Identity $list.DisplayName -ResultSize Unlimited if ($members.PrimarySmtpAddress -contains $confroom.PrimarySmtpAddress) { $confroomDetails.Location_GUID = $list.Guid $confroomDetails.Location_name = $list.DisplayName break } } $resources += $confroomDetails } foreach ($equipment in $equipmentMailboxes) { $equipmentDetails = [PSCustomObject]@{ "ResourceType" = "Equipment" "GUID" = $equipment.Guid "Name" = $equipment.DisplayName "Enabled" = $confroom.IsMailboxEnabled } $resources += $equipmentDetails } $csvFilePath = "confrooms_result.csv" $resources | Export-Csv -Path $csvFilePath -Encoding UTF8 -NoTypeInformation Write-Host "Confrooms information has been exported to $csvFilePath"
-
Откройте Exchange Management Shell и запустите скрипт:
Результат будет записан в файл confrooms_result.csv, который появится в папке со скриптом. Вы можете задать другой путь до файла изменив в скрипте переменную $csvFilePath
.
Шаг 2. Проверьте формат данных
Перед загрузкой данных в Почту VK WorkSpace, обязательно проверьте формат данных. Данные должны быть представлены в формате csv и иметь следующую структуру:
Пример данных
"ResourceType","GUID","Name","Enabled","Capacity","Comment","Country","State","City","Street","Postal_code","Office","Location_GUID","Location_name"
"Confroom","de45f0a1-470f-4257-928d-121f86cdc386","Переговорная 1","True","15","для деловых встреч","Russia","Moscow","Moscow oblast","Lesnaya","123456","North Tower",,
"Confroom","8c46c189-6bef-494e-81ab-04dcdf9d7d58","Переговорная 2","True","100","заметка","Россия","Московская область","Москва","Ленинградский пр-кт, 7","121314","Главный Офис","1f00a72e-d681-44c7-be5f-fd7b500f3c9f","Строение A, Этаж 5"
"Equipment","e2c900af-6449-436f-8fba-e5b53c065cd7","Микрофон","True",,,,,,,,,,
"Equipment","dd8b8bcb-2b34-416d-b80c-6f02bacf8777","Проектор","False",,,,,,,,,,
Основные поля:
- ResourceType — тип ресурса, должен принимать одно из двух значений:
Confroom
(переговорная комната) илиEquipment
(оборудование). Строки с другими значениямиResourceType
будут проигнорированы. - GUID — уникальный идентификатор переговорки/оборудования.
- Name — название переговорки/оборудования. Максимальная длина: 50 символов. Более длинные названия будут обрезаны до 50 символов.
- Enabled — флаг, который позволяет пометить, используется ли переговорка/оборудование. Должен принимать одно из двух значений:
True
илиFalse
.
Поля необходимые только для переговорных комнат:
Остальные поля заполняются только для переговорок, в случае с оборудованием они не учитываются
- Capacity — вместимость переговорной комнаты. Числовое значение. Если не заполнить или указать символы, будет выбрано значение по умолчанию —
0
. - Comment — комментарий.
- Country, State, City, Street, Postal_code — страна, область, город, улица, почтовый индекс.
- Office — название офиса. В нашей БД для этого поля есть лимит 100 символов, поэтому при записи в БД более длинные названия будут обрезаны
- Location_GUID — уникальный идентификатор локации. Локация — это расположение переговорных комнат внутри офиса. Например, конкретное здание офиса или этаж.
- Location_name — название локации. Максимальная длина: 50 символов.
Шаг 3. Перенесите данные в Почту VK WorkSpace
-
Подключитесь к контейнеру confroom:
-
Перенесите в контейнер файл confrooms_result.csv после того как проверили формат данных на предыдущем шаге.
-
Выполните команду указав путь до файла confrooms_result.csv:
После выполнения скрипта должно появиться сообщение:
Скрипт можно перезапускать. Если с какими-то данными возникнет ошибка, то можно исправить эти данные в файле и запустить скрипт заново, они обновятся по уникальному GUID из Exchange.
Особенности миграции
- Будут перенесены следующие данные:
- GUID переговорной комнаты.
- Название переговорной комнаты
- Вместимость.
- Комментарий.
- Название офиса.
- Адрес офиса: страна, область, город, улица, почтовый индекс.
- GUID оборудования и его название.
- Для оборудования будет перенесено только название, так как в Exchange оборудование не привязано к конкретным переговорным комнатам.
- В Exchange у переговорной комнаты нет отдельного поля с информацией о ее расположении внутри офиса (строение/этаж).