Как восстановить удаленный почтовый ящик с помощью PowerShell

Как бы вы случайно не удалили почтовый ящик человека в Exchange , вы наверняка сможете восстановить его с помощью PowerShell ( PoSh ). Ключ делает это, как только вы понимаете, что почтовый ящик был удален. 

Когда мы понимаем, что сделали это случайно, у меня перехватывает сердце. Если вы удалили только несколько сообщений электронной почты, мы можем показать вам, как восстановить удаленные электронные письма и в Office 365(how to recover deleted emails in Office 365) .

Прежде чем мы начнем, обратите внимание, что это предназначено для восстановления удаленных почтовых ящиков в Exchange Online для среды Office 365 и Exchange 2010 . Мы также предполагаем, что у вас есть права администратора для использования описанных методов и вы выполнили базовые сценарии PowerShell(basic PowerShell scripting)

Что происходит при удалении почтового ящика?(What Happens When a Mailbox Is Deleted?)

Почтовый ящик перемещается либо в корзину Azure Active Directory (AD) в (Azure Active Directory )Exchange Online , либо в каталог отключенных(Disconnected Mailboxes ) почтовых ящиков в Exchange 2010.

Он может находиться там до 30 дней в зависимости от действующих политик хранения. Это дает нам льготный период, чтобы признать свою ошибку и оправиться от нее.

Восстановить удаленный почтовый ящик в Exchange Online(Restore a Deleted Mailbox In Exchange Online)

Подключиться к Exchange Online через PowerShell(Connect To Exchange Online Via PowerShell)

В локальном сеансе откройте консоль Powershell и используйте следующую команду, чтобы указать свои учетные данные для входа в переменную.

$userCredential

Это облегчает работу с другими скриптами в дальнейшем.

$userCredential = get-Credential

Откроется окно, в котором вы можете ввести свое имя пользователя и пароль для управления Exchange Online .

Затем установите уровень политики выполнения, чтобы мы действительно могли что-то делать в нашем сеансе. Это позволяет нам запускать наши неподписанные команды. Но вы также можете изучить рекомендации по подписанию сценариев PowerShell(best practices for signing PowerShell scripts) .

set-ExecutionPolicy Unrestricted

При появлении запроса нажмите Y для подтверждения.

Теперь мы создадим переменную $session , которая будет использоваться для открытия соединения между локальным компьютером и Exchange Online .

$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $userCredential -Authentication Basic -AllowRedirection

Powershell-liveid — это идентификатор вашего сайта Office . Обычно это какая-то вариация названия вашей компании. 

Используйте следующую команду, чтобы открыть сеанс PoSh в (PoSh)Exchange Online :

import-PSSession $Session -DisableNameChecking

Теперь мы работаем с PowerShell прямо в Exchange Online , хоть и сидим за своим компьютером.

Восстановить удаленный почтовый ящик с помощью PowerShell(Restore a Deleted Mailbox With PowerShell)

Следующая часть очень проста. Установление соединения займет у нас гораздо больше времени. 

Все, что нам нужно сделать, это запустить командлет, показанный ниже:

undo-SoftDeletedMailbox [email protected] -WindowsLiveID [email protected] -Password (ConvertTo-SecureString -String 'newpassword' -AsPlainText -Force)

Измените оба экземпляра [email protected] на соответствующее имя почтового ящика и Windows LiveID почтового ящика, который мы хотим восстановить. Обратите внимание, что они могут не совпадать. 

Мы также должны установить новый пароль для почтового ящика. Измените новый пароль(newpassword) в сценарии на пароль по вашему выбору. Вам нужно будет передать это пользователю и попросить его сменить пароль при следующем входе в систему.

Наконец, используйте следующий командлет, чтобы убедиться, что это работает. 

get-Mailbox [email protected]

Если он был восстановлен, командлет вернет информацию о восстановленном почтовом ящике. Если он возвращает ошибку, повторите команды и убедитесь, что используются правильный почтовый ящик и Windows LiveID

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

Когда мы закончим, мы должны закрыть сеанс PoSh . Количество проводимых нами сеансов PoSh ограничено. Если оставить его открытым, используется один из этих сеансов. Если мы не закроем его, нам придется дождаться тайм-аута сеанса, прежде чем мы сможем начать другой.

remove-PSSession $Session

Вот и все. Вы даже можете захотеть записать это в модуль PowerShell(PowerShell Module) для простоты использования, если это произойдет снова.

Восстановить удаленный почтовый ящик в Exchange 2010(Restore a Deleted Mailbox In Exchange 2010)

Это не работает для Office 365 или гибридных сред. Он работает только для локального  Exchange 2010 .

На почтовом сервере откройте консоль управления Exchange(Exchange Management Console ) (EMC). 

Перейдите к Конфигурация получателя(Recipient Configuration ) > Отключенный почтовый ящик(Disconnected Mailbox) . Там мы должны увидеть почтовый ящик пользователя. 

Если мы этого не делаем, значит, процесс очистки базы данных почтовых ящиков еще не произошел. Все в порядке, мы можем заставить его.

  • Откройте командную консоль Exchange(Exchange Management Shell ) ( EMS ) от имени администратора. Здесь мы можем выполнять работу PowerShell, специфичную для Exchange(Exchange-specific PowerShell) .
  • Теперь вводим командлет: 
Get-MailboxDatabase | Clean-MailboxDatabase

  • Как только это будет сделано, давайте вернемся в EMC и щелкните правой кнопкой мыши Disconnected Mailbox , а затем щелкните Refresh
  • Мы должны увидеть почтовый ящик там сейчас, и он есть вместе с другим, который был недавно удален.

  • Вернитесь в EMS и введите командлет: 
Connect-Mailbox -Identity "username" -Database "Mailbox Database" -User "username"
  • Имя пользователя(Username) — это имя учетной записи пользователя Windows (например, (Windows)Test User ) , а база данных почтовых ящиков(Mailbox Database) — это имя базы данных, указанное рядом с его именем в окне « Отключенный почтовый ящик(Disconnected Mailbox) » в EMC. 
  • Обновите Disconnected Mailbox , и вы должны увидеть, что их почтовый ящик больше не отображается там. Перейдите к Конфигурации получателя(Recipient Configuration ) > Почтовый ящик(Mailbox ) и убедитесь, что почтовый ящик пользователя там.

Проверьте его, чтобы убедиться, что все настройки, такие как адрес электронной почты и псевдоним, верны. Если все выглядит хорошо, в следующий раз, когда пользователь откроет свой Outlook , все будет так же, как и было.

Почтовый ящик восстановлен(Mailbox Restored)

Вот как можно использовать PowerShell для восстановления почтовых ящиков в Exchange Online и Exchange 2010 . Если у вас гибридная среда, это немного сложнее, но это можно сделать. 

Одно лишь знание того, что существуют эти разные командлеты, позволяет вам работать с Exchange независимо от его версии или конфигурации.



About the author

Я веб-разработчик с опытом работы в Firefox и Google Docs. У меня есть степень в области делового администрирования Университета Флориды. Мои навыки включают в себя: разработку веб-сайтов, систему управления контентом (CMS), анализ данных и дизайн пользовательского интерфейса. Я опытный консультант, который может помочь вашей команде создавать эффективные веб-сайты и приложения.



Related posts