понедельник, 14 декабря 2015 г.

Команды PowerShell для Exchange 2010 SP3

Здесь собраны команды, которые я использую в повседневной работе. Список предполагается рихтовать время от времени.
Может быть будет полезно вам, а также сам пользуюсь данной статьей, как шпаргалкой :)

Команда 1
Показывает размеры имеющихся баз данных, а также количество свободного в них места

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

Команда 2
Получить список почтовых ящиков: имя ящика, количество писем, размер

Get-Mailbox | Get-MailboxStatistics | sort TotalItemSize -descending | ft DisplayName, TotalItemSize, ItemCount

Команда 2a
То же самое, только размер ящиков выводим в мегабайтах, при этом в колонке отображаются только цифры

Get-Mailbox -database "Mail*"| Get-MailboxStatistics | sort TotalItemSize -descending | ft DisplayName, @{label="Mailbox Size (MB)";expression={$_.TotalItemSize.Value.ToMB()}}, ItemCount

Команда 2b
Получить суммарный объем всех почтовых ящиков в базе данных с именем, соответствующей выражению «Mail*»

Get-Mailbox -database "Mail*"| Get-MailboxStatistics | select-object @{label="mbsize";expression={$_.TotalItemSize.Value.ToMB()}}|measure mbsize -sum
Команда 2c
Получить размер всех почтовых ящиков и преобразовать данные в HTML файл. Потом очень удобно из HTML файла копировать в Excel и там уже делать обработку.

Get-Mailbox -database "Main*"| Get-MailboxStatistics | select-object displayname, @{label="mbsize";expression={$_.TotalItemSize.Value.ToMB()}}|sort mbsize|ConvertTo-Html DisplayName, mbsize > c:\
Команда 3
Получить список локальных запросов на перемещение со статусом InProgress, при отображении результатов выводить только две колонки DisplayName и PercentComplete

Get-MoveRequest -MoveStatus InProgress | Get-MoveRequestStatistics | ft DisplayName, PercentComplete

Команда 4
Запустить обработку писем в заданном ящике в соответствии с политиками хранения

Get-Mailbox -Identity name.surname@domain.com | Start-ManagedFolderAssistant

Команда 5
Создать локальный запрос на перемещение всех почтовых ящиков, чье название начинается с «dmitry». Перемещение будет выполняться в базу MainExchangeDb. Важным параметром является -PrimaryOnly, если его не указать, то будет происходить перемещение не только основного почтового ящика, но и архива

Get-Milbox -Identity "dmitry*" | New-MoveRequest -TargetDatabase MainExchangeDb -PrimaryOnly
Команда 5a
Битый час пришлось мне потратить, чтобы получить эту команду. Она позволяет выполнить new-moverequest для ящиков определенного размера. Ключевым моментом здесь является повторяющийся Get-Mailbox в середине команды, который преобразует вывод Get-MailboxStatistics в формат, принимаемый New-MoveRequest

Get-Mailbox -database "Mailbox*" | Get-MailboxStatistics | Where {$_.TotalItemSize -lt 20Mb} | get-mailbox | New-MoveRequest -TargetDatabase MainExchangeDb -PrimaryOnly
Команда 5b
Перемещаем почтовый ящик с большим количеством поврежденных сообщений

get-mailbox -identity name.surname@domain.com | new-moverequest -targetdatabase MainExchangeDb -baditemlimit 100 -AcceptLargeDataLoss  -PrimaryOnly
Команда 5c
Количество одновременно перемещаемых ящиков можно изменить, отредактировав соответствующую строку в файле C:\Program Files\Microsoft\Exchange Server\V14\Bin\MSExchangeMailboxReplication.exe.config

MaxActiveMovesPerTargetMDB = «2»

Команда 6
А вот так смотрим, сколько еще ящиков осталось в базе данных, из которой переносим или в той, куда переносим

get-mailbox -database "Mailbox*"|ft displayname, database | measure-object|ft count

Команда 7
Поиск всех почтовых ящиков, чья архивная база данных соответствует заданному шаблону

get-mailbox | where {$_.ArchiveDatabase -like "Mail*"}

Команда 8
Создание архива в базе данных ArchiveDb для всех почтовых ящиков, чем размер не превышает 1Гб

Get-Mailbox -database "Mailbox*" | Get-MailboxStatistics | Where {$_.TotalItemSize -lt 1Gb} | get-mailbox|enable-mailbox -archive -archivedatabase "ArchiveDb"

Команда 9
Поиск всех почтовых ящиков в базе данных соответствующей шаблону «Mailbox*», при этом размер ящика лежит в диапазоне от 2Гб до 7Гб и displayname не соответствует Ivan Ivanov

Get-Mailbox -database "Mailbox*" | Get-MailboxStatistics | Where {($_.TotalItemSize -gt 2Gb) -and ($_.TotalItemSize -lt 7Gb) -and $_.DisplayName -notlike "Ivan Ivanov"}|sort displayname

Команда 10
Перенос только архивных почтовых ящиков из баз данных, соответствующих «Maii*» в базу данных ArchiveDb

Get-Mailbox | where {$_.ArchiveDatabase -like "Mai*"}|New-MoveRequest -ArchiveOnly -ArchiveTargetDatabase "ArchiveDb"

Команда 11
Задаю всех ящикам во всех базах данных значение «unlimited» для квот, когда будет остановлена отправка почты и когда прием.

Get-Mailbox | set-mailbox -prohibitsendquota "unlimited" -ProhibitSendReceiveQuota "unlimited"

Команда 11a
А так проверяю, что установленные в команде 12a свойства действительно были изменены

Get-Mailbox|ft name,prohibitsendquota,ProhibitSendReceiveQuota

Команда 12
Принудительное обновление OAB (Offline Address Book)

Get-OfflineAddressbook | Update-OfflineAddressbook
Get-ClientAccessServer | Update-FileDistributionService
Команда 13
Очищаем почтовый ящик user.name от писем, удаленных из папки Удаленные (т.е. recoverable items)

Search-Mailbox –identity user.name –SearchDumpsterOnly –DeleteContent

Команда 14
Если мы отключили только что почтовый ящик пользователя и хотим тут же его подключить другой учетке AD, то перезапускаем службу "Банк данных Exchange" и выполняем команду
Clean-MailboxDatabase  MainExchangeDb
, где MainExchangeDb является базой данных отключенного почтового ящика. В противном случае при попытке открыть заново подключенный ящик в OWA или через Outlook будет выдаваться ошибка

Команда 15
Удалить окончательно отключенные (Disabled)/удаленные (SoftDeleted) почтовые ящики

$DeletedMailbox = Get-MailboxStatistics -Database ArchiveDb | where {$_.DisconnectReason -eq "SoftDeleted"} | Select DisplayName, MailboxGuid, Database
$DeletedMailbox | ForEach { Remove-StoreMailbox -Database $_.Database -Identity $_.MailboxGuid -MailboxState SoftDeleted -Confirm:$False}
Команда 16
Импортируем данные из PST файла в архивный почтовый ящик
New-MailboxImportRequest -Mailbox user@domain.com -IsArchive -FilePath \\192.168.10.6\ExchangePSTFiles\Archive\user_first_6_month_2015.pst
Теперь смотрим статус запроса на импорт(подробно)
 Get-MailboxImportRequest|format-list
Смотрим список запросов на импорт
Get-MailboxImportRequest

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

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