При удалении почтового ящика в Microsoft Exchange или связанной учётной записи в Active Directory ящик не исчезает сразу. Он остаётся в базе данных Exchange в статусе отключённого в течение заданного периода (по умолчанию 30 дней), что позволяет администратору восстановить данные или переназначить ящик. В этой статье мы рассмотрим типы отключённых ящиков, их управление, восстановление и удаление с помощью PowerShell и Exchange Admin Center (EAC).
Что такое отключённые почтовые ящики
Почтовый ящик в Exchange состоит из двух компонентов: учётной записи в Active Directory (содержит конфигурацию ящика) и данных в почтовой базе Exchange. Отключённый ящик — это ящик, который сохраняется в базе, но не связан с учётной записью в AD. Существуют два типа отключённых ящиков:
1. Disabled: Ящики, отключённые командлетами Disable-Mailbox (отсоединяет ящик от учётной записи) или Remove-Mailbox (удаляет ящик и учётную запись в AD).
2. SoftDeleted: Копии ящиков, сохраняемые после перемещения ящика в другую базу для защиты данных при миграции.
Оба типа хранятся в базе до истечения срока хранения, заданного в настройках базы на вкладке Ограничения -> Хранить удалённые почтовые ящики (дней) (по умолчанию 30 дней).
Просмотр отключённых ящиков
Для управления отключёнными ящиками используйте PowerShell с модулем Exchange.
1. Список всех отключённых ящиков (Disabled)
Выведите ящики во всех базах:
Get-MailboxDatabase | Get-MailboxStatistics | Where-Object { $_.DisconnectReason -eq "Disabled" } | Format-Table DisplayName, Database, DisconnectDate, MailboxGUID
2. Список отключённых ящиков в одной базе
Для конкретной базы (например, Msk-DB1):
Get-MailboxStatistics -Database Msk-DB1 | Where-Object { $_.DisconnectReason -eq "Disabled" } | Format-Table DisplayName, Database, DisconnectDate, MailboxGUID
3. Список ящиков SoftDeleted
Выведите ящики со статусом SoftDeleted:
Get-MailboxDatabase | Get-MailboxStatistics | Where-Object { $_.DisconnectReason -eq "SoftDeleted" } | Format-Table DisplayName, Database, DisconnectDate, MailboxGUID
Очистка баз от отключённых ящиков
Отключённые ящики занимают место в базе, что может быть критично при массовых миграциях или удалениях. Exchange автоматически удаляет их по истечении срока хранения, но можно выполнить принудительную очистку.
1. Удаление конкретного ящика
Используйте командлет Remove-StoreMailbox с указанием MailboxGUID:
Remove-StoreMailbox -Database Msk-DB1 -Identity "2532944e-8eeb-4c7e-8bd3-ee2a223b071e" -MailboxState Disabled
Внимание: Это действие необратимо.
2. Удаление всех отключённых ящиков
Очистите все ящики со статусом Disabled:
Get-MailboxDatabase | Get-MailboxStatistics | Where-Object { $_.DisconnectReason -eq "Disabled" } | ForEach-Object { Remove-StoreMailbox -Database $_.Database -Identity $_.MailboxGUID -MailboxState Disabled }
3. Удаление ящиков SoftDeleted
Удалите копии ящиков после миграции в одной базе:
Get-MailboxStatistics -Database Msk-DB1 | Where-Object { $_.DisconnectReason -eq "SoftDeleted" } | ForEach-Object { Remove-StoreMailbox -Database $_.Database -Identity $_.MailboxGUID -MailboxState SoftDeleted -WhatIf }
Параметр -WhatIf позволяет протестировать команду без выполнения.
Подключение отключённого ящика
Отключённый ящик можно подключить к существующей или новой учётной записи в Active Directory, если она не имеет активного ящика.
1. Подключение через PowerShell
Подключите ящик к той же или другой учётной записи:
Connect-Mailbox -Identity "AAndreev" -Database Msk-DB1 -User AAndreev
— Identity: Имя или MailboxGUID ящика.
— User: Имя учётной записи в AD.
2. Подключение через EAC
— Откройте Exchange Admin Center -> Получатели -> Подключить почтовый ящик.
— Выберите ящик и учётную запись, затем выполните подключение.
3. Проверка SMTP-алиасов
После подключения проверьте SMTP-адреса ящика:
Get-Mailbox -Identity AAndreev | Select-Object EmailAddresses
При необходимости обновите алиасы:
Set-Mailbox -Identity AAndreev -EmailAddresses @{Add="newalias@domain.com"}
4. Ожидание репликации AD
Дождитесь завершения репликации Active Directory перед использованием ящика.
Восстановление данных в другой ящик
Данные из отключённого ящика можно восстановить в существующий ящик другого пользователя с помощью New-MailboxRestoreRequest.
1. Восстановление в корень ящика
Перенесите данные в ящик другого пользователя:
New-MailboxRestoreRequest -SourceDatabase Msk-DB1 -SourceStoreMailbox "AAndreev" -TargetMailbox "Admin"
2. Восстановление в отдельную папку
Восстановите данные в папку, например, RestoreBox, используя MailboxGUID:
New-MailboxRestoreRequest -SourceDatabase Msk-DB1 -SourceStoreMailbox "2532944e-8eeb-4c7e-8bd3-ee2a223b071e" -TargetMailbox "Admin" -TargetRootFolder "RestoreBox" -AllowLegacyDNMismatch
Параметр -AllowLegacyDNMismatch игнорирует несоответствие идентификаторов.
3. Проверка статуса восстановления
Проверьте прогресс:
Get-MailboxRestoreRequest
Рекомендации
— Регулярно проверяйте размер баз Exchange, так как отключённые ящики занимают место.
— Увеличьте срок хранения ящиков (Keep deleted mailboxes for days) для критических систем.
— Перед удалением ящиков с помощью Remove-StoreMailbox убедитесь, что они не нужны, так как восстановление невозможно.
— Используйте -WhatIf для предварительного анализа команд удаления.
— После подключения ящика дождитесь репликации AD, чтобы избежать ошибок.
— Создавайте резервные копии баз перед массовыми операциями.
Эти методы позволяют эффективно управлять отключёнными почтовыми ящиками в Exchange, восстанавливать данные и оптимизировать место в базах с минимальными рисками.