ソフトウェア
 Computer >> コンピューター >  >> ソフトウェア >> ソフトウェア

PowerShellで削除されたExchangeメールボックスを復元する方法(Exchange Online/Exchange 2010対応)

Exchangeでユーザーのメールボックスを誤って削除してしまった場合でも、PowerShell(PoSh)を使えば復元できる可能性は十分にあります。重要なのは、メールボックスが削除されたことに気づいた時点で、できるだけ早く対処することです。

うっかりメールボックスを削除してしまった瞬間、心臓が飛び出しそうになる経験をされた方もいるでしょう。なお、削除したのが数通のメールメッセージだけなら、Office 365で削除済みメールを復旧する方法も別途ご紹介しています。

PowerShellで削除されたExchangeメールボックスを復元する方法(Exchange Online/Exchange 2010対応)

始める前に注意点として、本記事の手順は、Office 365環境のExchange OnlineExchange 2010における削除済みメールボックスの復元を対象としています。また、説明する方法を実行するための管理者権限を持っていること、およびPowerShellスクリプトの基礎的な知識があることを前提としています。

メールボックスを削除すると何が起こるのか?

メールボックスが削除されると、Exchange OnlineではAzure Active Directory(AD)のごみ箱へ、Exchange 2010では[切断されたメールボックス](Disconnected Mailboxes)ディレクトリへ移動されます。

そこには、適用されているアイテム保持ポリシーに応じて、最大30日間保持されます。つまり、過ちに気づいてから復旧するまでの猶予期間が与えられているのです。

Exchange Onlineで削除済みメールボックスを復元する

PowerShellで削除されたExchangeメールボックスを復元する方法(Exchange Online/Exchange 2010対応)

PowerShellでExchange Onlineに接続する

ローカルのセッションでPowerShellコンソールを開き、以下のコマンドでログイン資格情報を変数に格納します。

$userCredential = Get-Credential

こうしておくと、後続のスクリプトでの作業が楽になります。コマンドを実行するとウィンドウが開くので、Exchange Onlineを管理するためのユーザー名とパスワードを入力してください。

PowerShellで削除されたExchangeメールボックスを復元する方法(Exchange Online/Exchange 2010対応)

次に、実行ポリシーのレベルを設定し、セッション内で実際に操作できるようにします。これにより、署名されていないコマンドも実行可能になります。ただし、PowerShellスクリプトへの署名に関するベストプラクティスについても学んでおくことをおすすめします。

Set-ExecutionPolicy Unrestricted

確認を求められたら、Y(Yes)を押します。

続いて、ローカルコンピューターと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 user@mycompany.com -WindowsLiveID user@mycompany.com -Password (ConvertTo-SecureString -String 'newpassword' -AsPlainText -Force)

user@mycompany.comの2箇所を、復元したいメールボックスの適切なメールボックス名とWindows LiveIDに置き換えてください。この2つが同じとは限らない点に注意しましょう。

また、メールボックスには新しいパスワードを設定する必要があります。スクリプト内のnewpasswordを任意のパスワードに変更してください。設定したパスワードをユーザーに伝え、次回ログイン時にパスワードを変更してもらうようにしましょう。

最後に、次のコマンドレットを使って、復元が正常に完了したかどうかを確認します。

Get-Mailbox user@mycompany.com

復元に成功していれば、このコマンドレットは復元されたメールボックスの情報を返します。エラーが返された場合は、コマンドを再度見直し、正しいメールボックス名とWindows LiveIDを使用しているか確認してください。

それでもうまくいかない場合は、システムバックアップからメールボックスを復元する必要があります。システムバックアップにはさまざまな種類があるため、その詳細については本記事の範囲外となります。

作業が完了したら、必ずPoShセッションを閉じましょう。同時に実行できるPoShセッションの数には制限があり、開いたままにしているとその枠を1つ消費してしまいます。閉じないままでは、セッションがタイムアウトするまで新しいセッションを開始できません。

Remove-PSSession $Session

以上で完了です。同様の事態が再び起こった場合に備えて、この一連の手順をPowerShellモジュールとしてスクリプト化しておくのもよいでしょう。

Exchange 2010で削除済みメールボックスを復元する

この方法は、Office 365やハイブリッド環境では機能しません。オンプレミスのExchange 2010専用の手順です。

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

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

PowerShellで削除されたExchangeメールボックスを復元する方法(Exchange Online/Exchange 2010対応)

表示されない場合は、メールボックスデータベースのクリーン処理がまだ実行されていないことが考えられます。問題ありません。強制的に実行できます。

  • Exchange管理シェル(EMS)を管理者として開きます。ここでExchange固有のPowerShell作業を行えます。
  • 次のコマンドレットを入力します。
Get-MailboxDatabase | Clean-MailboxDatabase
PowerShellで削除されたExchangeメールボックスを復元する方法(Exchange Online/Exchange 2010対応)
  • 処理が完了したら、EMCに戻り、[切断されたメールボックス]を右クリックして[更新]をクリックします。
  • これでメールボックスが表示されるはずです。実際に、最近削除された別のメールボックスとともに表示されました。
PowerShellで削除されたExchangeメールボックスを復元する方法(Exchange Online/Exchange 2010対応)
  • EMSに戻り、次のコマンドレットを入力します。
Connect-Mailbox -Identity "username" -Database "Mailbox Database" -User "username"
  • usernameは対象ユーザーのWindowsアカウント名(例:Test User)、Mailbox DatabaseはEMCの[切断されたメールボックス]画面でユーザー名の横に表示されているデータベース名です。
  • [切断されたメールボックス]を更新すると、そのメールボックスはもう表示されなくなっているはずです。[受信者の構成] > [メールボックス]に移動し、ユーザーのメールボックスが存在することを確認してください。
PowerShellで削除されたExchangeメールボックスを復元する方法(Exchange Online/Exchange 2010対応)

メールアドレスやエイリアスなどの設定がすべて正しいか確認してください。問題がなければ、ユーザーが次にOutlookを開いたとき、以前と同じようにすべてのデータがそこにあるはずです。

メールボックスの復元完了

以上が、PowerShellを使用してExchange OnlineおよびExchange 2010のメールボックスを復元する方法です。ハイブリッド環境の場合は少し複雑になりますが、復元自体は可能です。

こうした各種コマンドレットの存在を知っているだけで、どのバージョン・どのような構成のExchangeを扱う場合でも、有利な立場に立てるでしょう。

  1. Windows 10・11で削除されたファイルを復元する方法を徹底解説

    Windowsはバージョンが新しくなるたびに進化を続けていますが、昔からあるおなじみのトラブルは、今でも時折発生します。 その代表例のひとつが、「以前保存しておいたファイルや大事なデータが、いつの間にか削除されていた」というケースです。もしあなたも今まさにこのような状況に陥っているなら、この記事はまさにうってつけです。 本記事では、Windowsから削除されたファイルやフォルダを手間なく復元できる、最も効果的な方法をご紹介します。それでは早速見ていきましょう。 1. 「バックアップと復元」機能を使う Windowsには標準でバックアップ機能が搭載されており、あらかじめバックアップを作成していれ

  2. Time MachineでMacをバックアップ・復元する方法を徹底解説

    大切な写真やデータのバックアップはきちんと取っていますか?思い出を残すために大量の写真を撮る人は多いものの、バックアップをしていなければ、いつデータを失ってもおかしくありません。Macのバックアップを定期的に取っておけば、システムの不具合、ハードドライブの故障、ファイルの破損、ウイルス感染、マシンのクラッシュなど、どんなトラブルが起きても大切な思い出を守ることができます。そこで活躍するのが、Apple純正のバックアップツール「Time Machine」です。自動でバックアップを行えるうえ、操作も非常にシンプル。バックアップしたくないファイルを除外できる柔軟性も魅力です。また、ハードドライブ全体