PowerShellを使用して、削除されたExchangeメールボックスを復元する


Exchangeでユーザーのメールボックスを誤って削除した場合でも、おそらくPowerShell(PoSh)を使用して復元できます。キーは、メールボックスが削除されたことを認識するとすぐに実行します。

これは、偶然これをやったことに気づいたとき、胸がドキドキする瞬間です。少数のメールメッセージのみを削除した場合は、Office 365で削除された電子メールを回復する方法 も表示できます。

開始する前に、これはOffice 365のExchange Onlineで削除されたメールボックスを復元するためのものであることに注意してください。環境およびExchange 2010。また、説明した方法を使用する管理者権限があり、いくつかの基本的なPowerShellスクリプト を実行していることを前提としています。

メールボックスが削除されるとどうなりますか?

メールボックスは、Azure Active Directory(AD)リサイクルのいずれかに移動しますExchange OnlineのbinまたはExchange 2010のDisconnected Mailboxesディレクトリ。

設定されている保持ポリシーによっては、最大30日間そこに存在する場合があります。これにより、エラーを認識して回復するための猶予期間が与えられます。

Exchange Onlineで削除されたメールボックスを回復する

PowerShellを介してExchange Onlineに接続

ローカルセッションで、Powershellコンソールを開き、次のコマンドを使用してログイン資格情報を変数に設定します。

<!-
In_content_1 all:[300x250] / dfp:[640x360]
->
$userCredential

これにより、後で他のスクリプトを操作しやすくなります。

$userCredential = get-Credential

入力可能なウィンドウが開きますExchange Onlineを管理するためのユーザー名とパスワード。

次に、セッションで実際に実行できるように、実行ポリシーレベルを設定します。これにより、署名のないコマンドを実行できます。ただし、PowerShellスクリプトに署名するためのベストプラクティス も学習することをお勧めします。

set-ExecutionPolicy Unrestricted

プロンプトが表示されたら、Yを押してはい。

ここで、ローカルコンピューターとExchange Onlineの間の接続を開くために使用する変数$ sessionを作成します。

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

Powershell-liveidは、OfficeサイトのIDです。通常、これは会社名のバリエーションです。

次のコマンドを使用して、Exchange OnlineでPoShセッションを開きます。

import-PSSession $Session -DisableNameChecking

現在、Exchange OnlineでPowerShellを直接使用していますが、

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モジュールにスクリプト化することもできます。

Exchange 2010で削除されたメールボックスを回復する

これはありませんOffice 365またはハイブリッド環境で動作します。オンプレミスのExchange 2010でのみ機能します。

メールサーバーで、Exchange管理コンソール(EMC)を開きます。

受信者の設定>切断されたメールボックスに移動します。そこにユーザーのメールボックスが表示されるはずです。

そうしない場合、メールボックスデータベースのクリーニングプロセスはまだ行われていません。

  • 管理者としてExchange管理シェル(EMS)を開きます。ここで、Exchange固有のPowerShell作業を行うことができます。
  • 次に、コマンドレットを入力します。
  • Get-MailboxDatabase | Clean-MailboxDatabase
    • それが終わったら、EMCに戻ってDisconnected Mailboxを右クリックし、 [更新]。
    • ここにメールボックスが表示され、最近削除された別のメールボックスも表示されるはずです。
      • EMSに戻り、コマンドレットを入力します:
      • Connect-Mailbox -Identity "username" -Database "Mailbox Database" -User "username"
        • ユーザー名は、ユーザーのWindowsアカウント名(テストユーザーなど)、およびメールボックスデータベースは横にリストされているデータベースの名前ですEMCの[切断されたメールボックス]ウィンドウに名前が表示されます。
        • 切断されたメールボックスを更新すると、メールボックスが表示されなくなっていることがわかります。 受信者の構成>メールボックスに移動し、ユーザーのメールボックスがそこにあることを確認します。
        • メールアドレスやエイリアスなど、すべての設定が正しいことを確認してください。見栄えが良ければ、次にユーザーがOutlookを開いたときに、すべてが元の状態のままになります。

          Mailbox Restored

          その使用方法Exchange OnlineおよびExchange 2010でメールボックスを復元するPowerShell。ハイブリッド環境を使用している場合は、少し複雑ですが、実行できます。

          これらの異なるコマンドレットが存在することを知っているだけで、バージョンや構成に関係なく、Exchangeを操作するのに適した位置に配置できます。

          Office365 サービスの有効化/無効化 Scriptスクリプト 事前準備

          関連記事:


          1.10.2019