Некоторые картинки не загружаются из РФ и РК, используйте VPN.

четверг, 11 мая 2023 г.

Exchange команды для управления отключенными/удаленными ящиками

Эта заметка по необходимым командам при работе с отключенными/удаленными ящиками

Как посмотреть размер БД (databasesize) и свободное в ней место (availablenewmailboxspace)? (удаленные письма/ПЯ не уменьшают размер базы, а освобождают место под новые письма)

Get-MailboxDatabase -Status | ft name,databasesize, availablenewmailboxspace -auto

Отключенные или удаленные по-умолчанию не удаляются сразу, настройка лимита возможна через ECP в свойствах базы (limits-Keep deleted mailboxes for days)

Как посмотреть список пя со статусом отключен во всех БД

Get-MailboxDatabase | Get-MailboxStatistics | Where { $_.DisconnectReason -eq "Disabled" } | ft DisplayName,Database,DisconnectDate,MailboxGUID

Как посмотреть список пя со статусом отключен в одной БД (MAIN-DB)

Get-MailboxStatistics –database MAIN-DB | Where { $_.DisconnectReason -eq "Disabled" } | ft DisplayName,Database,DisconnectDate,MailboxGUID

Как посмотреть список удаленных ПЯ со статусом SoftDelete

Get-MailboxDatabase | Get-MailboxStatistics | Where { $_.DisconnectReason -eq "SoftDeleted" } | ft DisplayName,Database,DisconnectDate,MailboxGUID

Как окончательно удалить почтовый ящик. Identity берем из предыдущих команд (MailboxGUID). Указание MailboxState обязательное, неправильное указание MailboxState приведет к исключению. Дананя команда не удалит почтовый ящик, если он не имеет указанный MailboxState

Remove-StoreMailbox -Database MAIN-DB  -Identity "2556944e-8ccb-4c7e-8bd3-ee2a223b071e" -MailboxState Disabled

Удаление всех ПЯ во всех БД со статусом Disabled

Get-MailboxDatabase | Get-MailboxStatistics | where {$_.DisconnectReason -eq "Disabled"} | foreach {Remove-StoreMailbox -Database $_.database -Identity $_.mailboxguid -MailboxState Disabled}

Удаление всех ПЯ в определенной БД (MAIN-DB) со статусом Softdeleted. Напоминаю, –Whatif позволяет посмотреть что будет при выполнении команды, без ее выполнения

Get-MailboxStatistics –Database MAIN-DB  | Where-Object {$_.DisconnectReason –eq “Softdeleted”} | ForEach {Remove-StoreMailbox –Database $_.database –identity $_.mailboxguid –MailboxState Softdeleted}

Возможно потребуется использвать не -eq, а -like и $_.database.name вместо $_.database

Get-MailboxStatistics –Database MAIN-DB | Where-Object {$_.DisconnectReason –like “Softdeleted”} | ForEach {Remove-StoreMailbox –Database $_.database.name –identity $_.mailboxguid –MailboxState Softdeleted}

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

Get-MailboxStatistics -Database MAIN-DB | ForEach {Update-StoreMailboxState -Database $_.Database -Identity $_.MailboxGuid -Confirm:$false}

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

Connect-Mailbox -Identity "AA" -Database MAIN-DB  -User AA

Восстановить содержимое отключенного пя в другой ящик

New-MailboxRestoreRequest -SourceDatabase MAIN-DB  -SourceStoreMailbox "AA" -TargetMailbox "Admin"

Для очистки свободного пространства (т.н. WhiteSpace) потребуется выполнить дефрагментацию, которая по сути является обычным переносом в пустую базу. Для выполнения операции нужно минимум 110% свободного места на диске от размера БД. Для выполнения операции используется Eseutil /d. Логика проста - переходим в каталог БД, размонтируем БД, запускаем дефрагментацию, монтируем ящик обратно.

cd F:\Mailbox\base\
Dismount-Database MAIN-DB
Eseutil /d base.edb /t E:\temp\temp.edb
Mount-Database MAIN-DB

У меня БД MAIN-DB весит 1,5Тб, а диск всего 2, поэтому для темп используется другая локация. Стоит также обратить внимание на то, что скорость выполнения зависит от многих факторов, например 1,5Тб может фрагментироваться больше суток.

Комментариев нет:

Отправить комментарий