今回は、インプレースアーカイブをPowershellで有効化する方法をご紹介していきたいと思います。
Powershellを利用することで全ユーザー一括で有効化することもできます。
インプレースアーカイブについては以下の記事もご参照いただけますと幸いです。
機能を有効化後、数時間 ~ 24 時間ほどで、アーカイブメールボックスが作成されます。
以下の記事の手順にて、ExchangeOnlineに接続してから実行してください。
1. メールボックス単位で有効化する場合
[構文]
Enable-Mailbox <対象メールボックスのアドレス> -Archive
[実行例]
Enable-Mailbox User001@contoso.com -Archive
2. 特定の複数メールボックスに対し、一括で有効化する場合
【2-1. 対象メールボックスをまとめた CSV ファイルを作成する】
特定の複数メールボックスに対し一括で設定変更を行う場合、対象のメールボックス一覧を記載した CSV ファイルを作成いただき、コマンドレットを実行いたします。
<ファイルの構文>
Identity
[対象ユーザーのアドレス(Identity)]
<ファイルの作成例>
Identity
(以下 省略)
※ 1 行目は固定で、設定を行うユーザーやアドレスを 2 行目以降に記載します。
※ 日本語を含めた CSV ファイルを作成される際には、文字化けが発生する可能性がございますので UTF-8 形式での保存をお願いいたします。
[補足] UTF-8 での保存の手順
(1). CSV ファイルを右クリックし、[プログラムから開く] - [メモ帳] の順にクリックします
(2). 開いたメモ帳で [ファイル] - [名前を付けて保存] の順にクリックします。
(3). ファイルの種類で「すべてのファイル」を選択します。
(5). [保存] をクリックします。
【2-2. 対象メールボックスのインプレースアーカイブを一括で有効化する】
[構文]
Import-Csv "<保存した CSV ファイルパス>" |foreach {Enable-Mailbox -Archive -Identity $_.Identity ; Start-Sleep -M 500}
[実行例]
Import-Csv "C:\Temp\MemberList.csv" |foreach {Enable-Mailbox -Archive -Identity $_.Identity ; Start-Sleep -M 500}
※ 実行例は C ドライブの Temp フォルダー内に保存した MemberList.csv ファイルを指定しております。
※ 既にインプレースアーカイブを有効化されているユーザーがいる場合、"受信者 User001@contoso.com には既にアーカイブがあります。 このタスクでは、受信者ごとに複数のアーカイブを持つこができません。" とエラーが表示されます。
3.すべてのユーザー メールボックスに対し、インプレースアーカイブを有効化する場合
下記コマンドでは、インプレースアーカイブが有効化されてないユーザーを特定し、そのユーザー メールボックスに対して一括でインプレースアーカイブを有効化します。
コマンドレットは 2 行で構成されておりますので、1 行ずつ実行くださいますようお願い申し上げます。
[実行コマンド 1.]
$UserList = Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize Unlimited -Filter {ArchiveStatus -eq "None"}
[実行コマンド 2.]
$UserList | ForEach-Object {Enable-Mailbox -Archive -Identity $_.UserPrincipalname ; Start-Sleep -M 300}
インプレースアーカイブを無効化する方法についてもあわせてご紹介していきたいと思います。
インプレースアーカイブの無効化
メールボックスに保持機能 (訴訟ホールド、インプレース保持など) が有効になっている場合、Exchange 管理センターからインプレースアーカイブを無効化できないため、 Windows PowerShell にて無効化を行います。
※ 保持機能を有効化していない場合は管理画面、PowerShell どちらでも無効化が可能です。
[構文]
Disable-Mailbox "対象ユーザーのメールアドレス" -Archive -IgnoreLegalHold -Confirm:$False
[実行例]
Disable-Mailbox user01@contoso.com -Archive -IgnoreLegalHold -Confirm:$False
※ -Archive にてアーカイブメールボックスのみを対象にしており、IgnoreLegalHold にて保持機能が有効な場合でも実行できるようになっております。
※ 保持機能を有効化していない場合、IgnoreLegalHold は不要となります。
特定の複数メールボックスに対し、一括で無効化する場合
【1. 対象メールボックスをまとめた CSV ファイルを作成する】
[CSV ファイル構文例]
1 行目 : Identity
2 行目 : 該当のユーザアドレス
※ 3 行目以降は 2 行目と同様に入力してください
[CSV ファイル作成例]
Identity
以下のコマンドレットを実行し、作成した CSV ファイルを読み込み、対象メールボックスに一括でアーカイブメールボックスの無効化を行います。
<構文>
Import-Csv <"保存した CSV ファイルパス"> | foreach { Disable-Mailbox -Identity $_.Identity -IgnoreLegalHold -Archive -Confirm:$False}
<実行例>
Import-Csv "C:\temp\List.csv" | foreach { Disable-Mailbox -Identity $_.Identity -IgnoreLegalHold -Archive -Confirm:$False}
すべてのユーザー メールボックスに対し、インプレースアーカイブを無効化する場合
下記コマンドでは、インプレースアーカイブが有効化されているユーザーを特定し、そのユーザー メールボックスに対して一括でインプレースアーカイブを無効化いたします。
コマンドレットは 2 行で構成されておりますので、1 行ずつ実行くださいますようお願い申し上げます。
[実行コマンド 1.]
$UserList = Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize Unlimited -Filter {ArchiveStatus -eq "Active"}
[実行コマンド 2.]
$UserList | ForEach-Object {Disable-Mailbox -IgnoreLegalHold -Archive -Confirm:$False -Identity $_.UserPrincipalname ; Start-Sleep -M 300}
インプレースアーカイブの設定状況は以下のコマンドレットで確認が可能です。
インプレースアーカイブの設定状況を確認するコマンドレット
[構文]
Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails UserMailbox |Select DisplayName,ArchiveStatus | Export-CSV -Encoding UTF8 -NoTypeInformation -Path "<保存先のパス\ファイル名.csv>"
[実行例]
Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails UserMailbox |Select DisplayName,ArchiveStatus | Export-CSV -Encoding UTF8 -NoTypeInformation -Path "C:\Temp\Archive-UserList.CSV"
※ 実行例は C ドライブの Temp フォルダーに情報が出力されます。適宜ファイル名の変更をお願いします。
<実行結果について>
[DisplayName] : 表示名
[ArchiveStatus] : インプレースアーカイブ ※ [Active] : 有効、[None] : 無効